2 * Copyright © 2016-2018 European Support Limited
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package org.openecomp.sdc.itempermissions.dao.impl;
19 import java.util.Collection;
20 import java.util.Optional;
23 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
24 import org.openecomp.sdc.itempermissions.PermissionsRules;
25 import org.openecomp.sdc.itempermissions.PermissionsServices;
26 import org.openecomp.sdc.itempermissions.dao.ItemPermissionsDao;
27 import org.openecomp.sdc.itempermissions.dao.UserPermissionsDao;
28 import org.openecomp.sdc.itempermissions.type.ItemPermissionsEntity;
32 * Created by ayalaben on 6/22/2017.
34 public class PermissionsServicesImpl implements PermissionsServices {
36 private ItemPermissionsDao itemPermissionsDao;
38 private UserPermissionsDao userPermissionsDao;
40 private PermissionsRules permissionsRules;
42 private static final String CHANGE_PERMISSIONS = "Change_Item_Permissions";
44 public PermissionsServicesImpl(PermissionsRules permissionsRules,
45 ItemPermissionsDao itemPermissionsDao,
46 UserPermissionsDao userPermissionsDao) {
47 this.itemPermissionsDao = itemPermissionsDao;
48 this.permissionsRules = permissionsRules;
49 this.userPermissionsDao = userPermissionsDao;
54 public Collection<ItemPermissionsEntity> listItemPermissions(String itemId) {
55 return itemPermissionsDao.listItemPermissions(itemId);
59 public Set<String> listUserPermittedItems(String userId, String permission) {
60 return userPermissionsDao.listUserPermittedItems(userId, permission);
64 public void updateItemPermissions(String itemId, String permission, Set<String> addedUsersIds,
65 Set<String> removedUsersIds) {
67 String currentUserId = SessionContextProviderFactory.getInstance()
68 .createInterface().get().getUser().getUserId();
70 permissionsRules.executeAction(itemId, currentUserId, CHANGE_PERMISSIONS);
72 permissionsRules.updatePermission(itemId, currentUserId, permission, addedUsersIds,
75 itemPermissionsDao.updateItemPermissions(itemId, permission,
76 addedUsersIds, removedUsersIds);
78 userPermissionsDao.updatePermissions(itemId, permission,
79 addedUsersIds, removedUsersIds);
84 public boolean isAllowed(String itemId, String userId, String action) {
85 return itemPermissionsDao.getUserItemPermission(itemId, userId)
86 .map(permission -> permissionsRules.isAllowed(permission, action))
91 public void execute(String itemId, String userId, String action) {
92 permissionsRules.executeAction(itemId, userId, action);
96 public Optional<String> getUserItemPermission(String itemId, String userId) {
97 return itemPermissionsDao.getUserItemPermission(itemId, userId);
101 public void deleteItemPermissions(String itemId) {
102 itemPermissionsDao.deleteItemPermissions(itemId);