608102916e6c3b7b6e755631e8499b883755b3d7
[sdc.git] /
1 /*
2  * Copyright © 2016-2018 European Support Limited
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.openecomp.sdc.itempermissions.dao.impl;
17
18 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
19 import org.openecomp.sdc.itempermissions.PermissionsRules;
20 import org.openecomp.sdc.itempermissions.PermissionsServices;
21 import org.openecomp.sdc.itempermissions.dao.ItemPermissionsDao;
22 import org.openecomp.sdc.itempermissions.dao.UserPermissionsDao;
23 import org.openecomp.sdc.itempermissions.type.ItemPermissionsEntity;
24
25 import java.util.Collection;
26 import java.util.Set;
27
28
29 /**
30  * Created by ayalaben on 6/22/2017.
31  */
32 public class PermissionsServicesImpl implements PermissionsServices {
33
34   private ItemPermissionsDao itemPermissionsDao;
35
36   private UserPermissionsDao userPermissionsDao;
37
38   private PermissionsRules permissionsRules;
39
40   private static final String CHANGE_PERMISSIONS = "Change_Item_Permissions";
41
42   public PermissionsServicesImpl(PermissionsRules permissionsRules,
43                                  ItemPermissionsDao itemPermissionsDao,UserPermissionsDao userPermissionsDao) {
44     this.itemPermissionsDao = itemPermissionsDao;
45     this.permissionsRules = permissionsRules;
46     this.userPermissionsDao = userPermissionsDao;
47   }
48
49
50   @Override
51   public Collection<ItemPermissionsEntity> listItemPermissions(String itemId) {
52     return itemPermissionsDao.listItemPermissions(itemId);
53   }
54
55   @Override
56   public Set<String> listUserPermittedItems(String userId, String permission) {
57     return userPermissionsDao.listUserPermittedItems(userId,permission);
58   }
59
60   @Override
61   public void updateItemPermissions(String itemId, String permission, Set<String> addedUsersIds,
62                                     Set<String> removedUsersIds) {
63
64     String currentUserId = SessionContextProviderFactory.getInstance()
65           .createInterface().get().getUser().getUserId();
66
67     permissionsRules.executeAction(itemId,currentUserId,CHANGE_PERMISSIONS);
68
69     permissionsRules.updatePermission(itemId,currentUserId,permission,addedUsersIds,
70           removedUsersIds);
71
72     itemPermissionsDao.updateItemPermissions(itemId, permission,
73           addedUsersIds, removedUsersIds);
74
75     userPermissionsDao.updatePermissions(itemId, permission,
76             addedUsersIds, removedUsersIds);
77
78   }
79
80   @Override
81   public boolean isAllowed(String itemId,String userId,String action) {
82
83     String userPermission = itemPermissionsDao.getUserItemPermission(itemId,userId);
84     return permissionsRules.isAllowed(userPermission,action);
85   }
86
87   @Override
88   public void execute(String itemId,String userId,String action) {
89     permissionsRules.executeAction(itemId, userId, action);
90   }
91
92   @Override
93   public String getUserItemPermiission(String itemId, String userId) {
94     return itemPermissionsDao.getUserItemPermission(itemId,userId);
95   }
96
97   @Override
98   public void deleteItemPermissions(String itemId) {
99     itemPermissionsDao.deleteItemPermissions(itemId);
100   }
101
102 }