diff options
Diffstat (limited to 'ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/RoleServiceCentralizedAccess.java')
-rw-r--r-- | ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/RoleServiceCentralizedAccess.java | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/RoleServiceCentralizedAccess.java b/ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/RoleServiceCentralizedAccess.java new file mode 100644 index 00000000..f507a7fc --- /dev/null +++ b/ecomp-sdk/epsdk-core/src/main/java/org/openecomp/portalsdk/core/service/RoleServiceCentralizedAccess.java @@ -0,0 +1,169 @@ +package org.openecomp.portalsdk.core.service; + +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; + +import org.openecomp.portalsdk.core.domain.Role; +import org.openecomp.portalsdk.core.domain.RoleFunction; +import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.type.TypeFactory; + +@Transactional +public class RoleServiceCentralizedAccess implements RoleService { + + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RoleServiceCentralizedAccess.class); + + @Autowired + AppService appService; + + @Autowired + RestApiRequestBuilder restApiRequestBuilder; + + @Override + public List<RoleFunction> getRoleFunctions(String loginId) throws Exception { + + List<RoleFunction> roleFunctionList = null; + String role_function_list = ""; + role_function_list = restApiRequestBuilder.getViaREST("/getAllRoleFunctions", true, loginId); + ObjectMapper mapper = new ObjectMapper(); + roleFunctionList = mapper.readValue(role_function_list, + TypeFactory.defaultInstance().constructCollectionType(List.class, RoleFunction.class)); + return roleFunctionList; + } + + @Override + public List<Role> getAvailableChildRoles(String loginId, Long roleId) throws Exception { + List<Role> availableChildRoles = getAvailableRoles(loginId); + if (roleId == null || roleId == 0) { + return availableChildRoles; + } + + Role currentRole = getRole(loginId, roleId); + Set<Role> allParentRoles = new TreeSet<Role>(); + allParentRoles = getAllParentRolesAsList(loginId, currentRole, allParentRoles); + + Iterator<Role> availableChildRolesIterator = availableChildRoles.iterator(); + while (availableChildRolesIterator.hasNext()) { + Role role = availableChildRolesIterator.next(); + if (!role.getActive() || allParentRoles.contains(role) || role.getId().equals(roleId)) { + availableChildRolesIterator.remove(); + } + } + return availableChildRoles; + } + + @SuppressWarnings("unchecked") + private Set<Role> getAllParentRolesAsList(String loginId, Role role, Set<Role> allParentRoles) { + Set<Role> parentRoles = role.getParentRoles(); + allParentRoles.addAll(parentRoles); + Iterator<Role> parentRolesIterator = parentRoles.iterator(); + while (parentRolesIterator.hasNext()) { + getAllParentRolesAsList(loginId, parentRolesIterator.next(), allParentRoles); + } + return allParentRoles; + } + + @Override + public Role getRole(String loginId, Long id) throws Exception { + ObjectMapper mapper = new ObjectMapper(); + + String roleString = restApiRequestBuilder.getViaREST("/role/" + id, true, loginId); + Role role = null; + + role = mapper.readValue(roleString, Role.class); + + logger.info(EELFLoggerDelegate.applicationLogger, "role_id" + role.getId()); + return role; + + } + + @Override + public void saveRole(String loginId, Role domainRole) { + try { + restApiRequestBuilder.postViaREST("/saveRole", true, domainRole.toString(), loginId); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "saveRole Failed", e); + } + } + + @Override + public void deleteRole(String loginId, Role domainRole) { + + String filter = " where active_yn = 'Y' "; + try { + restApiRequestBuilder.deleteViaRest("/deleteRole", true, domainRole.toString(), filter, loginId); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "deleteRole Failed", e); + } + } + + @Override + public List<Role> getAvailableRoles(String requestedLoginId) throws Exception { + ObjectMapper mapper = new ObjectMapper(); + + String roleList = restApiRequestBuilder.getViaREST("/getRoles", true, requestedLoginId); + List<Role> roles = null; + roles = mapper.readValue(roleList, + TypeFactory.defaultInstance().constructCollectionType(List.class, Role.class)); + return roles; + } + + @Override + public List<Role> getActiveRoles(String requestedLoginId) throws Exception { + ObjectMapper mapper = new ObjectMapper(); + String roleString = restApiRequestBuilder.getViaREST("/activeRoles?active_yn = 'Y'", true, requestedLoginId); + List<Role> roles = null; + roles = mapper.readValue(roleString, + TypeFactory.defaultInstance().constructCollectionType(List.class, Role.class)); + return roles; + + } + + @Override + public RoleFunction getRoleFunction(String requestedLoginId, String code) throws Exception { + + ObjectMapper mapper = new ObjectMapper(); + String responseString = restApiRequestBuilder.getViaREST("/getRoleFunction/" + code, true, requestedLoginId); + RoleFunction roleFunction = null; + roleFunction = mapper.readValue(responseString, RoleFunction.class); + return roleFunction; + } + + @Override + public void saveRoleFunction(String requestedLoginId, RoleFunction domainRoleFunction) { + try { + restApiRequestBuilder.postViaREST("/saveRoleFunction", true, domainRoleFunction.toString(), + requestedLoginId); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "saveRoleFunction Failed", e); + } + } + + @Override + public void deleteRoleFunction(String requestedLoginId, RoleFunction domainRoleFunction) { + + try { + restApiRequestBuilder.deleteViaRest("/deleteRoleFucntion", true, domainRoleFunction.toString(), null, + requestedLoginId); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "deleteRoleFunction Failed", e); + } + } + + @Override + public void deleteDependcyRoleRecord(String requestedLoginId, Long id) { + + try { + restApiRequestBuilder.deleteViaRest("/deleteDependcyRoleRecord/" + id, true, null, null, requestedLoginId); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "deleteDependcyRoleRecord Failed", e); + } + } + +} |