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.
16 package org.openecomp.sdc.itempermissions.dao.impl;
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;
25 import java.util.Collection;
26 import java.util.Optional;
31 * Created by ayalaben on 6/22/2017.
33 public class PermissionsServicesImpl implements PermissionsServices {
35 private ItemPermissionsDao itemPermissionsDao;
37 private UserPermissionsDao userPermissionsDao;
39 private PermissionsRules permissionsRules;
41 private static final String CHANGE_PERMISSIONS = "Change_Item_Permissions";
43 public PermissionsServicesImpl(PermissionsRules permissionsRules,
44 ItemPermissionsDao itemPermissionsDao,
45 UserPermissionsDao userPermissionsDao) {
46 this.itemPermissionsDao = itemPermissionsDao;
47 this.permissionsRules = permissionsRules;
48 this.userPermissionsDao = userPermissionsDao;
53 public Collection<ItemPermissionsEntity> listItemPermissions(String itemId) {
54 return itemPermissionsDao.listItemPermissions(itemId);
58 public Set<String> listUserPermittedItems(String userId, String permission) {
59 return userPermissionsDao.listUserPermittedItems(userId, permission);
63 public void updateItemPermissions(String itemId, String permission, Set<String> addedUsersIds,
64 Set<String> removedUsersIds) {
66 String currentUserId = SessionContextProviderFactory.getInstance()
67 .createInterface().get().getUser().getUserId();
69 permissionsRules.executeAction(itemId, currentUserId, CHANGE_PERMISSIONS);
71 permissionsRules.updatePermission(itemId, currentUserId, permission, addedUsersIds,
74 itemPermissionsDao.updateItemPermissions(itemId, permission,
75 addedUsersIds, removedUsersIds);
77 userPermissionsDao.updatePermissions(itemId, permission,
78 addedUsersIds, removedUsersIds);
83 public boolean isAllowed(String itemId, String userId, String action) {
84 return itemPermissionsDao.getUserItemPermission(itemId, userId)
85 .map(permission -> permissionsRules.isAllowed(permission, action))
90 public void execute(String itemId, String userId, String action) {
91 permissionsRules.executeAction(itemId, userId, action);
95 public Optional<String> getUserItemPermission(String itemId, String userId) {
96 return itemPermissionsDao.getUserItemPermission(itemId, userId);
100 public void deleteItemPermissions(String itemId) {
101 itemPermissionsDao.deleteItemPermissions(itemId);