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 if (permission.equals(PermissionTypes.Contributor.name()) || permission.equals
53 (PermissionTypes.Owner.name())) {
58 case Change_Item_Permissions:
59 if (permission.equals(PermissionTypes.Owner.name())) {
65 if (permission.equals(PermissionTypes.Contributor.name()) || permission.equals
66 (PermissionTypes.Owner.name())) {
74 } catch (IllegalArgumentException ex) {
75 throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_ACTION_TYPE).build());
82 public void executeAction(String itemId, String userId, String action) {
84 switch (PermissionActionTypes.valueOf(action)) {
86 caseCreateItem(userId, itemId);
89 case Change_Item_Permissions:
100 } catch (IllegalArgumentException ex) {
101 throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_ACTION_TYPE).build());
106 public void updatePermission(String itemId, String currentUserId, String permission, Set<String>
107 addedUsersIds, Set<String> removedUsersIds) {
109 PermissionTypes.valueOf(permission);
110 } catch (IllegalArgumentException ex) {
111 throw new CoreException(new PermissionsErrorMessagesBuilder(INVALID_PERMISSION_TYPE).build());
114 if (permission.equals(PermissionTypes.Owner.name())) {
116 HashSet<String> currentOwner = new HashSet<>();
117 currentOwner.add(currentUserId);
119 PermissionsServicesFactory.getInstance().createInterface()
120 .updateItemPermissions(itemId, PermissionTypes.Contributor.name(),
121 currentOwner, new HashSet<String>());
125 protected void caseCreateItem(String userId, String itemId) {
126 HashSet<String> ownerId = new HashSet<>();
128 PermissionsServicesFactory.getInstance().createInterface()
129 .updateItemPermissions(itemId, PermissionTypes.Owner.name(), ownerId,
130 new HashSet<String>());