summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org/openecomp/sdc/be/user/UserBusinessLogic.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/user/UserBusinessLogic.java')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/user/UserBusinessLogic.java78
1 files changed, 22 insertions, 56 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/user/UserBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/user/UserBusinessLogic.java
index e1cac1c7ed..f90440011d 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/user/UserBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/user/UserBusinessLogic.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,10 +17,19 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-
package org.openecomp.sdc.be.user;
+import static org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum.ADD_USER;
+import static org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum.GET_USERS_LIST;
+import static org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum.UPDATE_USER;
+
import fj.data.Either;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.tinkerpop.gremlin.structure.Edge;
@@ -41,17 +50,6 @@ import org.openecomp.sdc.common.log.wrappers.Logger;
import org.openecomp.sdc.common.util.ThreadLocalsHolder;
import org.openecomp.sdc.exception.ResponseFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-import static org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum.ADD_USER;
-import static org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum.GET_USERS_LIST;
-import static org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum.UPDATE_USER;
-
@org.springframework.stereotype.Component
public class UserBusinessLogic {
@@ -59,7 +57,6 @@ public class UserBusinessLogic {
private static final String IN_CERTIFICATION_CHECKED_OUT = "in-certification/checked-out";
private static final String UNKNOWN = "UNKNOWN";
private static UserAdminValidator userAdminValidator = UserAdminValidator.getInstance();
-
private final UserAdminOperation userAdminOperation;
private final ComponentsUtils componentsUtils;
private final UserOperation facadeUserOperation;
@@ -91,7 +88,7 @@ public class UserBusinessLogic {
handleUserAccessAuditing(userId, ActionStatus.USER_NOT_FOUND);
throw new ByActionStatusComponentException(ActionStatus.USER_NOT_FOUND, userId);
}
- if (Objects.isNull(userContext.getUserRoles())){
+ if (Objects.isNull(userContext.getUserRoles())) {
userContext.setUserRoles(new HashSet<>());
}
return convertUserContextToUser(userContext);
@@ -110,11 +107,11 @@ public class UserBusinessLogic {
public boolean hasActiveUser(String userId) {
UserContext userContext = ThreadLocalsHolder.getUserContext();
- if (Objects.isNull(userContext) || Objects.isNull(userContext.getUserId()) ) {
+ if (Objects.isNull(userContext) || Objects.isNull(userContext.getUserId())) {
handleUserAccessAuditing(userId, ActionStatus.USER_NOT_FOUND);
return false;
}
- if (Objects.isNull(userContext.getUserRoles()) || userContext.getUserRoles().isEmpty()){
+ if (Objects.isNull(userContext.getUserRoles()) || userContext.getUserRoles().isEmpty()) {
handleUserAccessAuditing(userId, ActionStatus.USER_INACTIVE);
return false;
}
@@ -122,25 +119,20 @@ public class UserBusinessLogic {
}
public User createUser(String modifierUserId, User newUser) {
-
User modifier = getValidModifier(modifierUserId, newUser.getUserId(), AuditingActionEnum.ADD_USER);
-
// verify user not exist
String newUserId = newUser.getUserId();
Either<User, ActionStatus> eitherUserInDB = verifyNewUser(newUserId);
newUser.setStatus(UserStatusEnum.ACTIVE);
-
validateEmail(newUser);
-
validateRole(newUser);
-
// handle last login if user is import
if (newUser.getLastLoginTime() == null) {
newUser.setLastLoginTime(0L);
}
-
User createdUser;
- if (ActionStatus.USER_INACTIVE.equals(eitherUserInDB.right().value())) { // user inactive - update state // exist
+ if (ActionStatus.USER_INACTIVE.equals(eitherUserInDB.right()
+ .value())) { // user inactive - update state // exist
newUser.setLastLoginTime(0L);
createdUser = userAdminOperation.updateUserData(newUser);
} else { // user does not exist - create new user
@@ -199,37 +191,32 @@ public class UserBusinessLogic {
componentsUtils.auditAdminUserActionAndThrowException(ADD_USER, null, null, null, status, newUserId);
}
}
-
return eitherUserInDB;
}
private Either<User, ActionStatus> getUserData(String newUserId) {
if (newUserId == null) {
- log.error(EcompLoggerErrorCode.DATA_ERROR, "", "","Create user - new user id is missing");
+ log.error(EcompLoggerErrorCode.DATA_ERROR, "", "", "Create user - new user id is missing");
throw new ByActionStatusComponentException(ActionStatus.MISSING_INFORMATION);
}
-
return userAdminOperation.getUserData(newUserId, false);
}
public User updateUserRole(String modifierUserId, String userIdToUpdate, String userRole) {
-
User modifier = getValidModifier(modifierUserId, userIdToUpdate, UPDATE_USER);
User userToUpdate = getUser(userIdToUpdate, false);
validateChangeRoleToAllowedRoles(userRole);
-
List<Edge> userPendingTasks = userAdminOperation.getUserPendingTasksList(userToUpdate, getChangeRoleStateLimitations(userToUpdate));
if (!userPendingTasks.isEmpty()) {
log.debug("updateUserRole method - User cannot be updated, user have pending projects userId {}", userIdToUpdate);
String userInfo = userToUpdate.getFirstName() + " " + userToUpdate.getLastName() + '(' + userToUpdate.getUserId() + ')';
- componentsUtils.auditAdminUserActionAndThrowException(UPDATE_USER, modifier, userToUpdate, null, ActionStatus.CANNOT_UPDATE_USER_WITH_ACTIVE_ELEMENTS, userInfo, IN_CERTIFICATION_CHECKED_OUT);
+ componentsUtils.auditAdminUserActionAndThrowException(UPDATE_USER, modifier, userToUpdate, null,
+ ActionStatus.CANNOT_UPDATE_USER_WITH_ACTIVE_ELEMENTS, userInfo, IN_CERTIFICATION_CHECKED_OUT);
}
-
Role newRole = Role.valueOf(userRole);
User newUser = new User();
newUser.setRole(newRole.name());
newUser.setUserId(userIdToUpdate);
-
User updatedUser = userAdminOperation.updateUserData(newUser);
handleAuditing(modifier, userToUpdate, updatedUser, componentsUtils.getResponseFormat(ActionStatus.OK), UPDATE_USER);
getFacadeUserOperation().updateUserCache(UserOperationEnum.CHANGE_ROLE, updatedUser.getUserId(), updatedUser.getRole());
@@ -238,7 +225,7 @@ public class UserBusinessLogic {
private void validateChangeRoleToAllowedRoles(String userRole) {
List<String> allowedRoles = Arrays.asList(UserRoleEnum.DESIGNER.getName(), UserRoleEnum.ADMIN.getName());
- if (!allowedRoles.contains(userRole)){
+ if (!allowedRoles.contains(userRole)) {
throw new ByActionStatusComponentException(ActionStatus.INVALID_ROLE, userRole);
}
}
@@ -248,13 +235,11 @@ public class UserBusinessLogic {
log.error(EcompLoggerErrorCode.DATA_ERROR, "", "", "user modifier is missing");
throw new ByActionStatusComponentException(ActionStatus.MISSING_INFORMATION);
}
-
User modifier = getUser(modifierUserId, false);
if (!modifier.getRole().equals(UserRoleEnum.ADMIN.getName())) {
log.debug("user is not admin. Id = {}", modifier.getUserId());
componentsUtils.auditAdminUserActionAndThrowException(actionEnum, modifier, null, null, ActionStatus.RESTRICTED_OPERATION);
}
-
if (modifier.getUserId().equals(userIdHandle)) {
log.debug("admin user cannot act on self. Id = {}", modifier.getUserId());
componentsUtils.auditAdminUserActionAndThrowException(actionEnum, modifier, null, null, ActionStatus.UPDATE_USER_ADMIN_CONFLICT);
@@ -302,10 +287,7 @@ public class UserBusinessLogic {
handleGetUsersListAuditing(user, responseFormat, rolesStr);
return Either.right(responseFormat);
}
- List<User> users = response.left().value()
- .stream()
- .filter(u-> StringUtils.isNotEmpty(u.getUserId()))
- .collect(Collectors.toList());
+ List<User> users = response.left().value().stream().filter(u -> StringUtils.isNotEmpty(u.getUserId())).collect(Collectors.toList());
return Either.left(users);
}
@@ -331,27 +313,21 @@ public class UserBusinessLogic {
log.debug("authorize method - user id is missing");
throw new ByActionStatusComponentException(ActionStatus.MISSING_INFORMATION);
}
-
User user = getUser(userId, false);
-
String firstName = authUser.getFirstName();
if (firstName != null && !firstName.isEmpty() && !firstName.equals(user.getFirstName())) {
user.setFirstName(firstName);
}
-
String lastName = authUser.getLastName();
if (lastName != null && !lastName.isEmpty() && !lastName.equals(user.getLastName())) {
user.setLastName(lastName);
}
-
String email = authUser.getEmail();
if (email != null && !email.isEmpty() && !email.equals(user.getEmail())) {
user.setEmail(email);
}
-
// last login time stamp handle
user.setLastLoginTime();
-
User updatedUser = userAdminOperation.updateUserData(user);
Long lastLoginTime = user.getLastLoginTime();
if (lastLoginTime != null) {
@@ -359,7 +335,6 @@ public class UserBusinessLogic {
} else {
updatedUser.setLastLoginTime(0L);
}
-
handleUserAccessAuditing(updatedUser.getUserId(), ActionStatus.OK);
ASDCKpiApi.countUsersAuthorizations();
return updatedUser;
@@ -369,11 +344,8 @@ public class UserBusinessLogic {
* The method updates user credentials only, the role is neglected The role updated through updateRole method
*/
public Either<User, ResponseFormat> updateUserCredentials(User updatedUserCred) {
-
ResponseFormat responseFormat;
-
String userId = updatedUserCred.getUserId();
-
if (userId == null) {
updatedUserCred.setUserId(UNKNOWN);
log.debug("updateUserCredentials method - user header is missing");
@@ -381,23 +353,19 @@ public class UserBusinessLogic {
handleUserAccessAuditing(updatedUserCred, responseFormat);
return Either.right(responseFormat);
}
-
User user = getUser(userId, false);
String firstName = updatedUserCred.getFirstName();
if (firstName != null && !firstName.isEmpty() && !firstName.equals(user.getFirstName())) {
user.setFirstName(firstName);
}
-
String lastName = updatedUserCred.getLastName();
if (lastName != null && !lastName.isEmpty() && !lastName.equals(user.getLastName())) {
user.setLastName(lastName);
}
-
String email = updatedUserCred.getEmail();
if (email != null && !email.isEmpty() && !email.equals(user.getEmail())) {
user.setEmail(email);
}
-
if (updatedUserCred.getLastLoginTime() != null && user.getLastLoginTime() != null) {
if (updatedUserCred.getLastLoginTime() > user.getLastLoginTime()) {
user.setLastLoginTime(updatedUserCred.getLastLoginTime());
@@ -405,7 +373,6 @@ public class UserBusinessLogic {
} else if (updatedUserCred.getLastLoginTime() != null && user.getLastLoginTime() == null) {
user.setLastLoginTime(updatedUserCred.getLastLoginTime());
}
-
User updatedUser = userAdminOperation.updateUserData(user);
responseFormat = componentsUtils.getResponseFormat(ActionStatus.OK);
handleUserAccessAuditing(updatedUser, responseFormat);
@@ -432,5 +399,4 @@ public class UserBusinessLogic {
public UserOperation getFacadeUserOperation() {
return facadeUserOperation;
}
-
}