UserRolesController methods up
[portal.git] / portal-BE / src / main / java / org / onap / portal / service / AdminRolesService.java
index 5b72183..f8ef4a9 100644 (file)
@@ -66,6 +66,7 @@ import org.hibernate.Session;
 import org.hibernate.Transaction;
 import org.json.JSONArray;
 import org.json.JSONObject;
+import org.onap.portal.domain.db.DomainVo;
 import org.onap.portal.domain.db.ep.EpAppFunction;
 import org.onap.portal.domain.db.ep.EpUserRolesRequest;
 import org.onap.portal.domain.db.ep.EpUserRolesRequestDet;
@@ -77,6 +78,7 @@ import org.onap.portal.domain.db.fn.FnRole;
 import org.onap.portal.domain.db.fn.FnRoleFunction;
 import org.onap.portal.domain.db.fn.FnUser;
 import org.onap.portal.domain.db.fn.FnUserRole;
+import org.onap.portal.domain.dto.ecomp.EPUserApp;
 import org.onap.portal.domain.dto.transport.AppNameIdIsAdmin;
 import org.onap.portal.domain.dto.transport.AppWithRolesForUser;
 import org.onap.portal.domain.dto.transport.AppsListWithAdminRole;
@@ -97,6 +99,7 @@ import org.onap.portal.exception.SyncUserRolesException;
 import org.onap.portal.logging.format.EPAppMessagesEnum;
 import org.onap.portal.logging.logic.EPLogUtil;
 import org.onap.portal.service.appFunction.EpAppFunctionService;
+import org.onap.portal.service.roleFunction.FnRoleFunctionService;
 import org.onap.portal.service.userRolesRequestDet.EpUserRolesRequestDetService;
 import org.onap.portal.service.userRolesRequest.EpUserRolesRequestService;
 import org.onap.portal.service.app.FnAppService;
@@ -142,6 +145,7 @@ public class AdminRolesService {
     private final FnUserService fnUserService;
     private final FnRoleService fnRoleService;
     private final FnAppService fnAppService;
+    private final FnRoleFunctionService fnRoleFunctionService;
     private final FnMenuFunctionalService fnMenuFunctionalService;
     private final FnUserRoleService fnUserRoleService;
     private final EpAppFunctionService epAppFunctionService;
@@ -157,7 +161,7 @@ public class AdminRolesService {
         final EntityManager entityManager,
         final FnUserService fnUserService, FnRoleService fnRoleService,
         FnAppService fnAppService,
-        FnMenuFunctionalService fnMenuFunctionalService,
+        FnRoleFunctionService fnRoleFunctionService, FnMenuFunctionalService fnMenuFunctionalService,
         final FnUserRoleService fnUserRoleService,
         EpAppFunctionService epAppFunctionService,
         EcompUserAppRolesService ecompUserAppRolesService,
@@ -171,6 +175,7 @@ public class AdminRolesService {
         this.fnUserService = fnUserService;
         this.fnRoleService = fnRoleService;
         this.fnAppService = fnAppService;
+        this.fnRoleFunctionService = fnRoleFunctionService;
         this.fnMenuFunctionalService = fnMenuFunctionalService;
         this.fnUserRoleService = fnUserRoleService;
         this.epAppFunctionService = epAppFunctionService;
@@ -540,10 +545,15 @@ public class AdminRolesService {
             Role role = new Role();
             FnRole appRole = getAppRoles.stream()
                 .filter(applicationRole -> epRole.getId().equals(applicationRole.getId())).findAny().orElse(null);
+            List<FnRoleFunction> fnRoleFunctions = new ArrayList<>();
+            for (DomainVo vo: epRole.getRoleFunctions()){
+                Optional<FnRoleFunction> roleFunction = fnRoleFunctionService.findById(vo.getId());
+                roleFunction.ifPresent(fnRoleFunctions::add);
+            }
             if (appRole != null) {
                 role.setId(appRole.getAppRoleId());
                 role.setRoleName(epRole.getName());
-                role.setFnRoleFunctions(epRole.getRoleFunctions());
+                role.setFnRoleFunctions(new HashSet<>(fnRoleFunctions));
             }
             roles.add(role);
         }
@@ -1923,4 +1933,47 @@ public class AdminRolesService {
 
         return finalRoleFunctionSet;
     }
+
+    public AppsListWithAdminRole getAppsWithAdminRoleStateForUser(String orgUserId) {
+            AppsListWithAdminRole appsListWithAdminRole = null;
+
+            try {
+                List<FnUser> userList = fnUserService.getUserWithOrgUserId(orgUserId);
+                HashMap<Long, Long> appsUserAdmin = new HashMap<>();
+                if (userList!= null && userList.size() > 0) {
+                    FnUser user = userList.get(0);
+                    List<FnUserRole> userAppList = new ArrayList<>();
+                    try {
+                        userAppList = fnUserRoleService.retrieveByUserIdAndRoleId(user.getId(), ACCOUNT_ADMIN_ROLE_ID);
+                    } catch (Exception e) {
+                        logger.error(EELFLoggerDelegate.errorLogger, "getAppsWithAdminRoleStateForUser 1 failed", e);
+                        EPLogUtil.logEcompError(EPAppMessagesEnum.BeDaoSystemError);
+                    }
+                    for (FnUserRole userApp : userAppList) {
+                        appsUserAdmin.put(userApp.getFnAppId().getId(), userApp.getUserId().getId());
+                    }
+                }
+
+                appsListWithAdminRole = new AppsListWithAdminRole();
+                appsListWithAdminRole.setOrgUserId(orgUserId);
+                List<FnApp> appsList = new ArrayList<>();
+                try {
+                    appsList = fnAppService.findAll();
+                } catch (Exception e) {
+                    logger.error(EELFLoggerDelegate.errorLogger, "getAppsWithAdminRoleStateForUser 2 failed", e);
+                    EPLogUtil.logEcompError(EPAppMessagesEnum.BeDaoSystemError);
+                }
+                for (FnApp app : appsList) {
+                    AppNameIdIsAdmin appNameIdIsAdmin = new AppNameIdIsAdmin();
+                    appNameIdIsAdmin.setId(app.getId());
+                    appNameIdIsAdmin.setAppName(app.getAppName());
+                    appNameIdIsAdmin.setIsAdmin(appsUserAdmin.containsKey(app.getId()));
+                    appNameIdIsAdmin.setRestrictedApp(app.isRestrictedApp());
+                    appsListWithAdminRole.getAppsRoles().add(appNameIdIsAdmin);
+                }
+            } catch (Exception e) {
+                logger.error(EELFLoggerDelegate.errorLogger, "getAppsWithAdminRoleStateForUser 3 failed", e);
+            }
+            return appsListWithAdminRole;
+        }
 }