diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/AccessValidations.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/AccessValidations.java | 48 |
1 files changed, 39 insertions, 9 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/AccessValidations.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/AccessValidations.java index da098acb13..335a9398d7 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/AccessValidations.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/AccessValidations.java @@ -1,10 +1,12 @@ package org.openecomp.sdc.be.components.validation; -import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.exception.ResponseFormat; +import org.openecomp.sdc.be.user.Role; + +import java.util.ArrayList; +import java.util.List; @org.springframework.stereotype.Component public class AccessValidations { @@ -18,17 +20,45 @@ public class AccessValidations { this.componentValidations = componentValidations; } - public Component validateUserCanWorkOnComponentAndLockIt(ComponentTypeEnum componentTypeEnum, String componentId, String userId, String actionContext) { - userValidations.validateUserExists(userId, actionContext, false) - .left() - .on(this::onUserError); + public Component validateUserCanRetrieveComponentData(String componentId, String componentType, String userId, String actionContext) { + ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.findByParamName(componentType); + retrieveUser(userId, actionContext); + return componentValidations.getComponent(componentId, componentTypeEnum); + } - return componentValidations.validateComponentIsCheckedOutByUserAndLockIt(componentTypeEnum, componentId, userId); + public Component validateUserCanWorkOnComponent(String componentId, ComponentTypeEnum componentType, String userId, String actionContext) { + User user = retrieveUser(userId, actionContext); + validateUserIsAdminOrDesigner(user); + return componentValidations.validateComponentIsCheckedOutByUser(componentId, componentType, userId); + } + private User retrieveUser(String userId, String actionContext) { + return userValidations.validateUserExists(userId, actionContext, true); } - private User onUserError(ResponseFormat responseFormat) { - throw new ComponentException(responseFormat); + public void validateUserExist(String userId, String actionContext) { + userValidations.validateUserExists(userId, actionContext, false); } + public User userIsAdminOrDesigner(String userId, String actionContext){ + User user = retrieveUser(userId, actionContext); + validateUserIsAdminOrDesigner(user); + return user; + } + private void validateUserIsAdminOrDesigner(User user) { + List<Role> roles = new ArrayList<>(2); + roles.add(Role.ADMIN); + roles.add(Role.DESIGNER); + userValidations.validateUserRole(user, roles); + } + + public void validateUserCanWorkOnComponent(Component component, String userId, String actionContext) { + User user = retrieveUser(userId, actionContext); + validateUserIsAdminOrDesigner(user); + componentValidations.validateComponentIsCheckedOutByUser(component, userId); + } + + public void validateUserExists(String userId, String context) { + retrieveUser(userId, context); + } } |