X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ecomp-portal-BE-common%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fportalapp%2Fportal%2Fservice%2FUserRolesCommonServiceImpl.java;h=1811f8dced12cb509aec474bdc95e971c4a257de;hb=2845910b34682056c1949f82e39d9205a26554e9;hp=ab4044d14d909889dbf04efc0341d8806a701903;hpb=3aa28e9dd68cce134644223505f326378b5d91a8;p=portal.git diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImpl.java index ab4044d1..1811f8dc 100644 --- a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImpl.java +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImpl.java @@ -33,7 +33,7 @@ * * ============LICENSE_END============================================ * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * */ package org.onap.portalapp.portal.service; @@ -90,6 +90,7 @@ import org.onap.portalapp.portal.transport.FieldsValidator; import org.onap.portalapp.portal.transport.FunctionalMenuItem; import org.onap.portalapp.portal.transport.FunctionalMenuRole; import org.onap.portalapp.portal.transport.RemoteRole; +import org.onap.portalapp.portal.transport.RemoteRoleV1; import org.onap.portalapp.portal.transport.RemoteUserWithRoles; import org.onap.portalapp.portal.transport.RoleInAppForUser; import org.onap.portalapp.portal.transport.RolesInAppForUser; @@ -97,6 +98,7 @@ import org.onap.portalapp.portal.transport.UserApplicationRoles; import org.onap.portalapp.portal.utils.EPCommonSystemProperties; import org.onap.portalapp.portal.utils.EcompPortalUtils; import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalapp.util.SystemType; import org.onap.portalsdk.core.domain.Role; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; import org.onap.portalsdk.core.restful.domain.EcompRole; @@ -140,6 +142,9 @@ public class UserRolesCommonServiceImpl { @Autowired private ExternalAccessRolesService externalAccessRolesService; + @Autowired + private AppsCacheService appsCacheService; + RestTemplate template = new RestTemplate(); /** @@ -345,7 +350,7 @@ public class UserRolesCommonServiceImpl { /* * for local app -- hack - always make sure fn_role * table's app_id is null and not 1 for primary app in - * this case being ecomp portal app; reason: hibernate + * this case being onap portal app; reason: hibernate * is rightly setting this to 1 while persisting to * fn_role as per the mapping but SDK role management * code expects the app_id to be null as there is no @@ -646,6 +651,24 @@ public class UserRolesCommonServiceImpl { Set updatedUserRolesinRemote = constructUsersRemoteAppRoles(roleInAppForUserList); Set updateUserRolesInEcomp = constructUsersEcompRoles(roleInAppForUserList); String userRolesAsString = mapper.writeValueAsString(updatedUserRolesinRemote); + EPApp externalApp = null; + SystemType type = SystemType.APPLICATION; + externalApp = appsCacheService.getApp(appId); + String appBaseUri = null; + Set updatedUserRolesinRemoteV1 = new TreeSet<>(); + if (externalApp != null) { + appBaseUri = (type == SystemType.APPLICATION) ? externalApp.getAppRestEndpoint() : ""; + } + if(appBaseUri != null && appBaseUri.endsWith("/api")){ + for(EcompRole eprole :updatedUserRolesinRemote) + { + RemoteRoleV1 role = new RemoteRoleV1(); + role.setId(eprole.getId()); + role.setName(eprole.getName()); + updatedUserRolesinRemoteV1.add(role); + } + userRolesAsString = mapper.writeValueAsString(updatedUserRolesinRemoteV1); + } applicationsRestClientService.post(EcompRole.class, appId, userRolesAsString, String.format("/user/%s/roles", userId)); // TODO: We should add code that verifies that the post operation did @@ -761,7 +784,7 @@ public class UserRolesCommonServiceImpl { for (EPRole externalAppRole : rolesList) { // Try to find an existing extern role for the app in the local - // ecomp DB. If so, then use its id to update the existing external + // onap DB. If so, then use its id to update the existing external // application role record. Long externAppId = externalAppRole.getId(); EPRole existingAppRole = epRoleService.getRole(appId, externAppId); @@ -962,18 +985,7 @@ public class UserRolesCommonServiceImpl { ObjectMapper mapper = new ObjectMapper(); HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth(); HttpEntity getUserRolesEntity = new HttpEntity<>(headers); - logger.debug(EELFLoggerDelegate.debugLogger, "Connecting to external system to get current user roles"); - ResponseEntity getResponse = template - .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL) - + "roles/user/" + name, HttpMethod.GET, getUserRolesEntity, String.class); - if (getResponse.getStatusCode().value() == 200) { - logger.debug(EELFLoggerDelegate.debugLogger, "updateUserRolesInExternalSystem: Finished GET user roles from external system and received user roles {}", - getResponse.getBody()); - - }else{ - logger.error(EELFLoggerDelegate.errorLogger, "updateUserRolesInExternalSystem: Failed GET user roles from external system and received user roles {}",getResponse.getBody() ); - EPLogUtil.logExternalAuthAccessAlarm(logger, getResponse.getStatusCode()); - } + ResponseEntity getResponse = externalAccessRolesService.getUserRolesFromExtAuthSystem(name, getUserRolesEntity); List userRoleDetailList = new ArrayList<>(); String res = getResponse.getBody(); JSONObject jsonObj = null; @@ -1574,14 +1586,14 @@ public class UserRolesCommonServiceImpl { List rolesInAppForUser = null; EPApp app = appsService.getApp(appId); try { - // for ecomp portal app, no need to make a remote call + // for onap portal app, no need to make a remote call List roleList = new ArrayList<>(); if (appId == PortalConstants.PORTAL_APP_ID) { if(app.getCentralAuth()){ List cenRoleList = externalAccessRolesService.getRolesForApp(app.getUebKey()); for(CentralV2Role cenRole : cenRoleList){ Role role = new Role(); - role.setActive(cenRole.isActive()); + role.setActive(cenRole.getActive()); role.setId(cenRole.getId()); role.setName(cenRole.getName()); role.setPriority(cenRole.getPriority()); @@ -1629,7 +1641,7 @@ public class UserRolesCommonServiceImpl { } else{ appRoles = applicationsRestClientService.get(EcompRole[].class, appId, "/roles"); } - // Test this error case, for generating an internal Ecomp Portal + // Test this error case, for generating an internal ONAP Portal // error // EcompRole[] appRoles = null; // If there is an exception in the rest client api, then null will @@ -1832,6 +1844,7 @@ public class UserRolesCommonServiceImpl { * @see org.onap.portalapp.portal.service.UserRolesService# * getCachedAppRolesForUser(java.lang.Long, java.lang.Long) */ + @SuppressWarnings("deprecation") public List getCachedAppRolesForUser(Long appId, Long userId) { // Find the records for this user-app combo, if any String filter = " where user_id = " + Long.toString(userId) + " and app_id = " + Long.toString(appId);