1 package org.openecomp.sdc.be.components.validation;
3 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
4 import org.openecomp.sdc.be.model.Component;
5 import org.openecomp.sdc.be.model.User;
6 import org.openecomp.sdc.be.user.Role;
8 import java.util.ArrayList;
11 @org.springframework.stereotype.Component
12 public class AccessValidations {
14 private final UserValidations userValidations;
15 private final ComponentValidations componentValidations;
18 public AccessValidations(UserValidations userValidations, ComponentValidations componentValidations) {
19 this.userValidations = userValidations;
20 this.componentValidations = componentValidations;
23 public Component validateUserCanRetrieveComponentData(String componentId, String componentType, String userId, String actionContext) {
24 ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.findByParamName(componentType);
25 retrieveUser(userId, actionContext);
26 return componentValidations.getComponent(componentId, componentTypeEnum);
29 public Component validateUserCanWorkOnComponent(String componentId, ComponentTypeEnum componentType, String userId, String actionContext) {
30 User user = retrieveUser(userId, actionContext);
31 validateUserIsAdminOrDesigner(user);
32 return componentValidations.validateComponentIsCheckedOutByUser(componentId, componentType, userId);
34 private User retrieveUser(String userId, String actionContext) {
35 return userValidations.validateUserExists(userId, actionContext, true);
38 public void validateUserExist(String userId, String actionContext) {
39 userValidations.validateUserExists(userId, actionContext, false);
42 public User userIsAdminOrDesigner(String userId, String actionContext){
43 User user = retrieveUser(userId, actionContext);
44 validateUserIsAdminOrDesigner(user);
48 private void validateUserIsAdminOrDesigner(User user) {
49 List<Role> roles = new ArrayList<>(2);
50 roles.add(Role.ADMIN);
51 roles.add(Role.DESIGNER);
52 userValidations.validateUserRole(user, roles);
55 public void validateUserCanWorkOnComponent(Component component, String userId, String actionContext) {
56 User user = retrieveUser(userId, actionContext);
57 validateUserIsAdminOrDesigner(user);
58 componentValidations.validateComponentIsCheckedOutByUser(component, userId);
61 public void validateUserExists(String userId, String context) {
62 retrieveUser(userId, context);