1 package org.openecomp.sdc.itempermissions.impl;
3 import org.openecomp.sdc.common.errors.CoreException;
4 import org.openecomp.sdc.itempermissions.PermissionsRules;
5 import org.openecomp.sdc.itempermissions.PermissionsServicesFactory;
6 import org.openecomp.sdc.itempermissions.errors.PermissionsErrorMessagesBuilder;
7 import org.openecomp.sdc.itempermissions.impl.types.PermissionActionTypes;
8 import org.openecomp.sdc.itempermissions.impl.types.PermissionTypes;
10 import java.util.HashSet;
13 import static org.openecomp.sdc.itempermissions.errors.PermissionsErrorMessages.INVALID_ACTION_TYPE;
14 import static org.openecomp.sdc.itempermissions.errors.PermissionsErrorMessages.INVALID_PERMISSION_TYPE;
17 * Created by ayalaben on 6/26/2017.
19 public class PermissionsRulesImpl implements PermissionsRules {
23 public boolean isAllowed(String permission, String action) {
25 if (permission == null) {
29 PermissionTypes.valueOf(permission);
30 } catch (IllegalArgumentException ex) {
31 throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_PERMISSION_TYPE).build());
35 switch (PermissionActionTypes.valueOf(action)) {
40 if (permission.equals(PermissionTypes.Contributor.name()) || permission.equals
41 (PermissionTypes.Owner.name())) {
46 if (permission.equals(PermissionTypes.Contributor.name()) || permission.equals
47 (PermissionTypes.Owner.name())) {
52 case Change_Item_Permissions:
53 if (permission.equals(PermissionTypes.Owner.name())) {
59 if (permission.equals(PermissionTypes.Contributor.name()) || permission.equals
60 (PermissionTypes.Owner.name())) {
68 } catch (IllegalArgumentException ex) {
69 throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_ACTION_TYPE).build());
76 public void executeAction(String itemId, String userId, String action) {
78 switch (PermissionActionTypes.valueOf(action)) {
80 caseCreateItem(userId,itemId);
83 case Change_Item_Permissions:
94 } catch (IllegalArgumentException ex) {
95 throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_ACTION_TYPE).build());
100 public void updatePermission(String itemId,String currentUserId, String permission, Set<String>
101 addedUsersIds,Set<String> removedUsersIds) {
103 PermissionTypes.valueOf(permission);
104 } catch (IllegalArgumentException ex) {
105 throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_PERMISSION_TYPE).build());
108 if (permission.equals(PermissionTypes.Owner.name())) {
110 HashSet<String> currentOwner = new HashSet<String>();
111 currentOwner.add(currentUserId);
113 PermissionsServicesFactory.getInstance().createInterface()
114 .updateItemPermissions(itemId,PermissionTypes.Contributor.name(),
115 currentOwner,new HashSet<String>());
119 protected void caseCreateItem(String userId,String itemId) {
120 HashSet<String> ownerId = new HashSet<String>();
122 PermissionsServicesFactory.getInstance().createInterface()
123 .updateItemPermissions(itemId, PermissionTypes.Owner.name(), ownerId,
124 new HashSet<String>());