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.Owner.name())) {
67 } catch (IllegalArgumentException ex) {
68 throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_ACTION_TYPE).build());
75 public void executeAction(String itemId, String userId, String action) {
77 switch (PermissionActionTypes.valueOf(action)) {
79 caseCreateItem(userId,itemId);
82 case Change_Item_Permissions:
93 } catch (IllegalArgumentException ex) {
94 throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_ACTION_TYPE).build());
99 public void updatePermission(String itemId,String currentUserId, String permission, Set<String>
100 addedUsersIds,Set<String> removedUsersIds) {
102 PermissionTypes.valueOf(permission);
103 } catch (IllegalArgumentException ex) {
104 throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_PERMISSION_TYPE).build());
107 if (permission.equals(PermissionTypes.Owner.name())) {
109 HashSet<String> currentOwner = new HashSet<String>();
110 currentOwner.add(currentUserId);
112 PermissionsServicesFactory.getInstance().createInterface()
113 .updateItemPermissions(itemId,PermissionTypes.Contributor.name(),
114 currentOwner,new HashSet<String>());
118 protected void caseCreateItem(String userId,String itemId) {
119 HashSet<String> ownerId = new HashSet<String>();
121 PermissionsServicesFactory.getInstance().createInterface()
122 .updateItemPermissions(itemId, PermissionTypes.Owner.name(), ownerId,
123 new HashSet<String>());