summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/AccessValidations.java
diff options
context:
space:
mode:
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.java34
1 files changed, 34 insertions, 0 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
new file mode 100644
index 0000000000..da098acb13
--- /dev/null
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/AccessValidations.java
@@ -0,0 +1,34 @@
+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;
+
+@org.springframework.stereotype.Component
+public class AccessValidations {
+
+ private final UserValidations userValidations;
+ private final ComponentValidations componentValidations;
+
+
+ public AccessValidations(UserValidations userValidations, ComponentValidations componentValidations) {
+ this.userValidations = userValidations;
+ this.componentValidations = componentValidations;
+ }
+
+ public Component validateUserCanWorkOnComponentAndLockIt(ComponentTypeEnum componentTypeEnum, String componentId, String userId, String actionContext) {
+ userValidations.validateUserExists(userId, actionContext, false)
+ .left()
+ .on(this::onUserError);
+
+ return componentValidations.validateComponentIsCheckedOutByUserAndLockIt(componentTypeEnum, componentId, userId);
+ }
+
+ private User onUserError(ResponseFormat responseFormat) {
+ throw new ComponentException(responseFormat);
+ }
+
+
+}