X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ecomp-portal-BE-common%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fportalapp%2Fportal%2Fservice%2FUserRolesCommonServiceImpl.java;h=0751c72e2060a9fa5924358eb048ae4e7866f3bf;hb=23634dba70b166ad3c79b5eadfbd32b5375d44be;hp=d7aac633b2fe8b4f68bb5d9303f040097dd78dcc;hpb=4ba6a0f20a190030700917a6065a6779ca9d308f;p=portal.git diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserRolesCommonServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserRolesCommonServiceImpl.java index d7aac633..0751c72e 100644 --- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserRolesCommonServiceImpl.java +++ b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/portal/service/UserRolesCommonServiceImpl.java @@ -58,6 +58,7 @@ import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog; import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum; import org.openecomp.portalapp.portal.logging.logic.EPLogUtil; import org.openecomp.portalapp.portal.transport.AppWithRolesForUser; +import org.openecomp.portalapp.portal.transport.CentralRole; import org.openecomp.portalapp.portal.transport.EPUserAppCurrentRoles; import org.openecomp.portalapp.portal.transport.EcompUserAppRoles; import org.openecomp.portalapp.portal.transport.ExternalAccessUser; @@ -537,6 +538,7 @@ public class UserRolesCommonServiceImpl { externalAccessRolesService.deleteRoleDependencyRecords(localSession, roleId, appId); logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: about to delete the role: " + role.toString()); localSession.delete(role); + localSession.flush(); logger.debug(EELFLoggerDelegate.debugLogger, "syncAppRoles: deleted the role"); } } @@ -1292,7 +1294,7 @@ public class UserRolesCommonServiceImpl { } // Check if list contains just account admin role boolean checkIfAdminRoleExists = false; - if (reqType.equals("DELETE")) { + if (reqType.equals("DELETE") && userRoleList!=null) { checkIfAdminRoleExists = userRoleList.stream() .anyMatch(userRole -> userRole.getRoleId().equals(PortalConstants.ACCOUNT_ADMIN_ROLE_ID)); } else { @@ -1307,10 +1309,10 @@ public class UserRolesCommonServiceImpl { if (!app.getId().equals(PortalConstants.PORTAL_APP_ID) && !(checkIfAdminRoleExists && reqType.equals("DELETE")) && roleInAppForUserList.size() > 1) { EPUser remoteAppUser = null; - remoteAppUser = checkIfRemoteUserExits(userId.getOrgUserId(), app, + remoteAppUser = checkIfRemoteUserExits(orgUserId, app, applicationsRestClientService); if (remoteAppUser == null) { - addRemoteUser(roleInAppForUserList, userId.getOrgUserId(), app, mapper, searchService, + addRemoteUser(roleInAppForUserList, orgUserId, app, mapper, searchService, applicationsRestClientService); reqMessage = "Saved Successfully"; } @@ -1342,9 +1344,9 @@ public class UserRolesCommonServiceImpl { // If adding just account admin role don't do remote application user call if(!((roleInAppForUserList.size() == 1 || reqType.equals("DELETE")) && checkIfAdminRoleExists)){ EPUser remoteAppUser = null; - remoteAppUser = checkIfRemoteUserExits(userId.getOrgUserId(), app, applicationsRestClientService); + remoteAppUser = checkIfRemoteUserExits(orgUserId, app, applicationsRestClientService); if (remoteAppUser == null) { - remoteAppUser = addRemoteUser(roleInAppForUserList, userId.getOrgUserId(), app, mapper, searchService, applicationsRestClientService); + remoteAppUser = addRemoteUser(roleInAppForUserList, orgUserId, app, mapper, searchService, applicationsRestClientService); reqMessage = "Saved Successfully"; } if (remoteAppUser != null) { @@ -1396,7 +1398,7 @@ public class UserRolesCommonServiceImpl { logger.error(EELFLoggerDelegate.errorLogger, message, e); result = false; reqMessage = e.getMessage(); - if(epRequestIdSize > 0 && !userInfo.isEmpty()){ + if(epRequestIdSize > 0 && userInfo!=null && !userInfo.isEmpty()){ updateStatus = "F"; applyChangesToAppRolesRequest(app.getId(), userId.getId(), updateStatus, epRequestId.get(0)); @@ -1525,9 +1527,21 @@ public class UserRolesCommonServiceImpl { EPApp app = appsService.getApp(appId); try { // for ecomp portal app, no need to make a remote call + List roleList = new ArrayList<>(); if (appId == PortalConstants.PORTAL_APP_ID) { - - List roleList = roleService.getAvailableRoles(userId); + if(app.getCentralAuth()){ + List cenRoleList = externalAccessRolesService.getRolesForApp(app.getUebKey()); + for(CentralRole cenRole : cenRoleList){ + Role role = new Role(); + role.setActive(cenRole.isActive()); + role.setId(cenRole.getId()); + role.setName(cenRole.getName()); + role.setPriority(cenRole.getPriority()); + roleList.add(role); + } + }else{ + roleList = roleService.getAvailableRoles(userId); + } List activeRoleList = new ArrayList(); for(Role role: roleList) { if(role.getActive()) { @@ -1554,8 +1568,8 @@ public class UserRolesCommonServiceImpl { EcompRole[] appRoles = null; List roles = new ArrayList<>(); if(app.getCentralAuth()){ - //Sync application roles from External Access System - externalAccessRolesService.syncApplicationRolesWithEcompDB(app); + //Sync application functions from External Access System + externalAccessRolesService.syncRoleFunctionFromExternalAccessSystem(app); List applicationRoles = dataAccessService.getList(EPRole.class, " where app_id = "+app.getId()+ " and active_yn = 'Y'", null, null);; for(EPRole role : applicationRoles){ EcompRole ecompRole = new EcompRole(); @@ -1625,12 +1639,14 @@ public class UserRolesCommonServiceImpl { HashMap appRolesActiveMap =hashMapFromEcompRoles(appRoles); ArrayList activeRoles = new ArrayList(); - for (int i = 0; i < userAppRoles.length; i++) { - if (appRolesActiveMap.containsKey(userAppRoles[i].getId())) { - EcompRole role = new EcompRole(); - role.setId(userAppRoles[i].getId()); - role.setName(userAppRoles[i].getName()); - activeRoles.add(role); + if(userAppRoles != null){ + for (int i = 0; i < userAppRoles.length; i++) { + if (appRolesActiveMap.containsKey(userAppRoles[i].getId())) { + EcompRole role = new EcompRole(); + role.setId(userAppRoles[i].getId()); + role.setName(userAppRoles[i].getName()); + activeRoles.add(role); + } } } EcompRole[] userAppRolesActive = activeRoles.toArray(new EcompRole[activeRoles.size()]);