added svcapi ui and camunda code
[it/otf.git] / otf-frontend / client / src / app / shared / services / user.service.ts
1 /*  Copyright (c) 2019 AT&T Intellectual Property.                             #\r
2 #                                                                              #\r
3 #   Licensed under the Apache License, Version 2.0 (the "License");            #\r
4 #   you may not use this file except in compliance with the License.           #\r
5 #   You may obtain a copy of the License at                                    #\r
6 #                                                                              #\r
7 #       http://www.apache.org/licenses/LICENSE-2.0                             #\r
8 #                                                                              #\r
9 #   Unless required by applicable law or agreed to in writing, software        #\r
10 #   distributed under the License is distributed on an "AS IS" BASIS,          #\r
11 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #\r
12 #   See the License for the specific language governing permissions and        #\r
13 #   limitations under the License.                                             #\r
14 ##############################################################################*/\r
15 \r
16 \r
17 import { Injectable } from '@angular/core';\r
18 import { HttpClient } from '@angular/common/http';\r
19 import { map } from 'rxjs/operators';\r
20 import { ModelService } from './model.service';\r
21 import { ParamsService } from './params.service';\r
22 import { CookieService } from 'ngx-cookie-service';\r
23 import { FeathersService } from './feathers.service';\r
24 import { Ability } from '@casl/ability';\r
25 \r
26 \r
27 @Injectable({\r
28   providedIn: 'root'\r
29 })\r
30 export class UserService extends ModelService {\r
31 \r
32   public ability: Ability;\r
33 \r
34   constructor(http: HttpClient, Params: ParamsService, cookie: CookieService, private c: CookieService, feathers: FeathersService){\r
35     super('users', http, Params, cookie, feathers);\r
36     this.ability = new Ability(JSON.parse(localStorage.getItem('user_rules')));\r
37   }\r
38 \r
39   getId(){\r
40     return JSON.parse(this.cookie.get('currentUser'))._id;\r
41   }\r
42 \r
43   // addFavorite(ref: string, id: string){\r
44   //   return this.get(this.getId()).pipe(map(\r
45   //     result => {\r
46   //       if(!result['favorites']){\r
47   //         result['favorites'] = {};\r
48   //       }\r
49   //       if(!result['favorites'][ref]){\r
50   //         result['favorites'][ref] = [];\r
51   //       }\r
52   //       result['favorites'][ref].push(id);\r
53   //       result['favorites'][ref] = Array.from(new Set(result['favorites'][ref]));\r
54   //       this.patch(result).subscribe();\r
55   //     }\r
56   //   ));\r
57   // }\r
58 \r
59   // removeFavorite(ref: string, id: string){\r
60   //   return this.get(this.getId()).pipe(map(\r
61   //     result => {\r
62   //       result['favorites'][ref].splice( result['favorites'][ref].indexOf(id), 1 );\r
63   //       this.patch(result).subscribe();\r
64   //     }\r
65   //   ));\r
66   // }\r
67 \r
68   enableUser(id: string, enabled: boolean){\r
69       return this.patch({\r
70           "_id" : id,\r
71           "enabled": enabled\r
72       })\r
73 \r
74   }\r
75 }