Catalog alignment
[sdc.git] / catalog-ui / src / app / ng2 / services / component-services / component-mode.service.ts
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 /**
22  * Created by rc2122 on 5/23/2017.
23  */
24 import { Injectable } from '@angular/core';
25 import {WorkspaceMode, ComponentState, Role} from "../../../utils/constants";
26 import { Component as ComponentData } from "app/models";
27 import { CacheService } from "app/services-ng2";
28
29 @Injectable()
30
31 export class ComponentModeService {
32
33     constructor(private cacheService:CacheService) {
34     }
35
36     public getComponentMode = (component:ComponentData):WorkspaceMode => {//return if is edit or view for resource or service
37         let mode = WorkspaceMode.VIEW;
38
39         let user = this.cacheService.get("user");
40         if (component.lifecycleState === ComponentState.NOT_CERTIFIED_CHECKOUT &&
41             component.lastUpdaterUserId === user.userId) {
42             if ((component.isService() || component.isResource()) && user.role == Role.DESIGNER) {
43                 mode = WorkspaceMode.EDIT;
44             }
45         }
46         return mode;
47     }
48 }
49