From 64d4f195d68ded8e48ca92c64ce98cbff9d495b6 Mon Sep 17 00:00:00 2001 From: mozzy11 Date: Tue, 10 Sep 2024 15:52:42 +0300 Subject: [PATCH] exclude Global admin from Login Lab Unit --- frontend/src/components/security/SecureRoute.js | 4 +++- .../openelisglobal/systemuser/service/UserServiceImpl.java | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/security/SecureRoute.js b/frontend/src/components/security/SecureRoute.js index 6636dd25d..6986e32ec 100644 --- a/frontend/src/components/security/SecureRoute.js +++ b/frontend/src/components/security/SecureRoute.js @@ -7,6 +7,7 @@ import { confirmAlert } from "react-confirm-alert"; import "react-confirm-alert/src/react-confirm-alert.css"; // Import css import { Loading, Modal } from "@carbon/react/"; import config from "../../config.json"; +import { Roles } from "../utils/Utils"; import { FormattedMessage, useIntl } from "react-intl"; const idleTimeout = 1000 * 60 * 30; // milliseconds until idle warning will appear @@ -37,7 +38,8 @@ function SecureRoute(props) { console.info("Access Allowed"); if ( configurationProperties.REQUIRE_LAB_UNIT_AT_LOGIN === "true" && - !userSessionDetails.loginLabUnit + !userSessionDetails.loginLabUnit && + !userSessionDetails.roles.includes(Roles.GLOBAL_ADMIN) ) { window.location.href = "/landing"; } diff --git a/src/main/java/org/openelisglobal/systemuser/service/UserServiceImpl.java b/src/main/java/org/openelisglobal/systemuser/service/UserServiceImpl.java index 6bd7aa211..892eb5b5b 100644 --- a/src/main/java/org/openelisglobal/systemuser/service/UserServiceImpl.java +++ b/src/main/java/org/openelisglobal/systemuser/service/UserServiceImpl.java @@ -10,6 +10,7 @@ import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.openelisglobal.analysis.valueholder.Analysis; +import org.openelisglobal.common.constants.Constants; import org.openelisglobal.common.services.DisplayListService; import org.openelisglobal.common.services.DisplayListService.ListType; import org.openelisglobal.common.util.ConfigurationProperties; @@ -166,8 +167,10 @@ public List getUserTestSections(String systemUserId, String roleId) Boolean requireLabUnitAtLogin = ConfigurationProperties.getInstance() .getPropertyValue(Property.REQUIRE_LAB_UNIT_AT_LOGIN).equals("true"); UserSessionData usd = (UserSessionData) session.getAttribute("userSessionData"); + String adminRoleId = roleService.getRoleByName(Constants.ROLE_GLOBAL_ADMIN).getId(); + Boolean isadmin = userRoleService.getRoleIdsForUser(systemUserId).contains(adminRoleId); TestSection logintestSection = null; - if (requireLabUnitAtLogin) { + if (requireLabUnitAtLogin && !isadmin) { if (usd.getLoginLabUnit() != 0) { logintestSection = testSectionService.getTestSectionById(String.valueOf(usd.getLoginLabUnit())); if (logintestSection != null) {