X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=portal-BE%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fportal%2Fservice%2Ffn%2FFnRoleService.java;h=b0c4e60e15f13edddbebdd561816500ac45f2b09;hb=39fb119cdaea6bd8d801b22d195db39f6d8faaca;hp=45867b42f85917ff5b8703edba12480eaa4f113f;hpb=a6d3a0bc546d86a723611f12d18642b599dd2a11;p=portal.git diff --git a/portal-BE/src/main/java/org/onap/portal/service/fn/FnRoleService.java b/portal-BE/src/main/java/org/onap/portal/service/fn/FnRoleService.java index 45867b42..b0c4e60e 100644 --- a/portal-BE/src/main/java/org/onap/portal/service/fn/FnRoleService.java +++ b/portal-BE/src/main/java/org/onap/portal/service/fn/FnRoleService.java @@ -43,9 +43,12 @@ package org.onap.portal.service.fn; import java.util.ArrayList; import java.util.List; import java.util.Optional; +import java.util.Set; import javax.persistence.EntityExistsException; +import javax.print.attribute.standard.Fidelity; import org.onap.portal.dao.fn.FnRoleDao; import org.onap.portal.domain.db.fn.FnRole; +import org.onap.portal.service.ExternalAccessRolesService; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,34 +57,94 @@ import org.springframework.transaction.annotation.Transactional; @Service @Transactional public class FnRoleService { - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(FnRoleService.class); + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(FnRoleService.class); - private final FnRoleDao fnRoleDao; - @Autowired - public FnRoleService(FnRoleDao fnRoleDao) { - this.fnRoleDao = fnRoleDao; - } + private final FnRoleDao fnRoleDao; - public FnRole getById(final Long id) { - return fnRoleDao.findById(id).orElseThrow(EntityExistsException::new); - } + @Autowired + public FnRoleService(FnRoleDao fnRoleDao) { + this.fnRoleDao = fnRoleDao; + } - public FnRole getRole(final Long appId, final Long appRoleId) { + public FnRole getById(final Long id) { + return fnRoleDao.findById(id).orElseThrow(EntityExistsException::new); + } - String sql = "SELECT * FROM fn_role where APP_ID = :appId AND APP_ROLE_ID = :appRoleId"; + public FnRole getRole(final Long appId, final Long appRoleId) { + List roles = Optional.of(fnRoleDao.retrieveAppRoleByAppRoleIdAndByAppId(appId, appRoleId)) + .orElse(new ArrayList<>()); + if (!roles.isEmpty()) { + logger.error(EELFLoggerDelegate.errorLogger, + String.format( + "search by appId=%s, appRoleid=%s should have returned 0 or 1 results. Got %d. This is an internal server error.", + appId, appRoleId, roles.size())); + logger.error(EELFLoggerDelegate.errorLogger, + "Trying to recover from duplicates by returning the first search result. This issue should be treated, it is probably not critical because duplicate roles should be similar."); + return roles.get(0); + } + return null; + } - List roles = Optional.of(fnRoleDao.retrieveAppRoleByAppRoleIdAndByAppId(appId, appRoleId)).orElse(new ArrayList<>()); - if (!roles.isEmpty()) { - logger.error(EELFLoggerDelegate.errorLogger, - String.format( - "search by appId=%s, appRoleid=%s should have returned 0 or 1 results. Got %d. This is an internal server error.", - appId, appRoleId, roles.size())); - logger.error(EELFLoggerDelegate.errorLogger, - "Trying to recover from duplicates by returning the first search result. This issue should be treated, it is probably not critical because duplicate roles should be similar."); - return roles.get(0); - } - return null; - } + public List getAppRoles(Long appId) { + List applicationRoles; + try { + if (appId == 1) { + applicationRoles = retrieveAppRolesWhereAppIdIsNull(); + } else { + applicationRoles = retrieveAppRolesByAppId(appId); + } + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getAppRoles: failed", e); + throw e; + } + return applicationRoles; + } + + public List retrieveAppRoleByAppRoleIdAndByAppId(final Long appId, final Long appRoleId) { + return Optional.of(fnRoleDao.retrieveAppRoleByAppRoleIdAndByAppId(appId, appRoleId)).orElse(new ArrayList<>()); + } + + public List getUserRoleOnUserIdAndAppId(final Long userId, final Long appId) { + return Optional.of(fnRoleDao.getUserRoleOnUserIdAndAppId(userId, appId)).orElse(new ArrayList<>()); + } + + public List retrieveAppRoleByRoleIdWhereAppIdIsNull(final Long roleId) { + return Optional.of(fnRoleDao.retrieveAppRoleByRoleIdWhereAppIdIsNull(roleId)).orElse(new ArrayList<>()); + } + + public List retrieveAppRolesWhereAppIdIsNull() { + return Optional.of(fnRoleDao.retrieveAppRolesWhereAppIdIsNull()).orElse(new ArrayList<>()); + } + + public List retrieveAppRolesByAppId(final Long id) { + return Optional.of(fnRoleDao.retrieveAppRolesByAppId(id)).orElse(new ArrayList<>()); + } + + public List retrieveAppRolesByRoleNameAndByAppId(final String roleName, final Long appId) { + return Optional.of(fnRoleDao.retrieveAppRolesByRoleNameAndByAppId(roleName, appId)).orElse(new ArrayList<>()); + } + + public List retrieveActiveRolesOfApplication(final Long appId) { + return Optional.of(fnRoleDao.retrieveActiveRolesOfApplication(appId)).orElse(new ArrayList<>()); + } + + public List getGlobalRolesOfPortal() { + List globalRoles = new ArrayList<>(); + try { + globalRoles = Optional.of(fnRoleDao.getGlobalRolesOfPortal()).orElse(new ArrayList<>()); + } catch (Exception e) { + logger.error(EELFLoggerDelegate.errorLogger, "getGlobalRolesOfPortal failed", e); + } + return globalRoles; + } + + public void delete(FnRole role) { + fnRoleDao.delete(role); + } + + public FnRole saveOne(final FnRole role){ + return fnRoleDao.save(role); + } }