From 4e79910b5f327dd22835f07ba894dbc4b64a3d46 Mon Sep 17 00:00:00 2001 From: ryans Date: Wed, 23 Apr 2025 11:45:16 -0400 Subject: [PATCH 1/3] Show edit button if authorizer Fixes #60 --- .../business/session/AuthorizerFacade.java | 15 ++++++++++++- .../controller/FacilityAuthorization.java | 21 +++++++++++++++++++ .../WEB-INF/tags/authorizations-panel.tag | 7 ++++--- .../WEB-INF/views/facility-authorization.jsp | 2 +- 4 files changed, 40 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/jlab/jam/business/session/AuthorizerFacade.java b/src/main/java/org/jlab/jam/business/session/AuthorizerFacade.java index eee281f1..904c495a 100644 --- a/src/main/java/org/jlab/jam/business/session/AuthorizerFacade.java +++ b/src/main/java/org/jlab/jam/business/session/AuthorizerFacade.java @@ -148,10 +148,23 @@ public void removeAuthorizer(BigInteger facilityId, OperationsType type, String @PermitAll public void isAuthorizer(Facility facility, OperationsType type, String username) throws UserFriendlyException { + boolean authorizer = isAuthorizerBool(facility, type, username); + + if (!authorizer) { + throw new UserFriendlyException("Not Authorized to Authorize!"); + } + } + + @PermitAll + public boolean isAuthorizerBool(Facility facility, OperationsType type, String username) { List authorizerList = filterList(facility, type, username); + boolean authorizer = true; + if (authorizerList == null || authorizerList.isEmpty()) { - throw new UserFriendlyException("Not Authorized to Authorize!"); + authorizer = false; } + + return authorizer; } } diff --git a/src/main/java/org/jlab/jam/presentation/controller/FacilityAuthorization.java b/src/main/java/org/jlab/jam/presentation/controller/FacilityAuthorization.java index 5b16a04f..41ed66c3 100644 --- a/src/main/java/org/jlab/jam/presentation/controller/FacilityAuthorization.java +++ b/src/main/java/org/jlab/jam/presentation/controller/FacilityAuthorization.java @@ -15,6 +15,7 @@ import javax.servlet.http.HttpServletResponse; import org.jlab.jam.business.session.*; import org.jlab.jam.persistence.entity.*; +import org.jlab.jam.persistence.enumeration.OperationsType; import org.jlab.jam.persistence.view.FacilityExpirationEvent; /** @@ -33,6 +34,7 @@ public class FacilityAuthorization extends HttpServlet { @EJB RFSegmentFacade rfSegmentFacade; @EJB ExpirationManager expirationManager; @EJB NotificationManager notificationManager; + @EJB AuthorizerFacade authorizerFacade; /** * Handles the HTTP GET method. @@ -143,7 +145,26 @@ private void handleFacility( Map segmentAuthorizationMap = rfAuthorizationFacade.createSegmentAuthorizationMap(rfAuthorization); + String username = request.getRemoteUser(); + + System.err.println("REMOTE USER: " + username); + + boolean isRfEditable = false; + boolean isBeamEditable = false; + + if (username != null) { + if (request.isUserInRole("jam-admin")) { + isRfEditable = true; + isBeamEditable = true; + } else { + isRfEditable = authorizerFacade.isAuthorizerBool(facility, OperationsType.RF, username); + isBeamEditable = authorizerFacade.isAuthorizerBool(facility, OperationsType.BEAM, username); + } + } + request.setAttribute("unitsMap", beamAuthorizationFacade.getUnitsMap()); + request.setAttribute("isRfEditable", isRfEditable); + request.setAttribute("isBeamEditable", isBeamEditable); request.setAttribute("rfAuthorization", rfAuthorization); request.setAttribute("beamAuthorization", beamAuthorization); request.setAttribute("rfList", rfList); diff --git a/src/main/webapp/WEB-INF/tags/authorizations-panel.tag b/src/main/webapp/WEB-INF/tags/authorizations-panel.tag index e2ed0830..4bdf3ba0 100644 --- a/src/main/webapp/WEB-INF/tags/authorizations-panel.tag +++ b/src/main/webapp/WEB-INF/tags/authorizations-panel.tag @@ -7,7 +7,8 @@ <%@taglib prefix="t" tagdir="/WEB-INF/tags"%> <%@attribute name="rfList" required="true" type="java.util.List"%> <%@attribute name="beamList" required="true" type="java.util.List"%> -<%@attribute name="isEditable" required="true" type="java.lang.Boolean"%> +<%@attribute name="isRfEditable" required="true" type="java.lang.Boolean"%> +<%@attribute name="isBeamEditable" required="true" type="java.lang.Boolean"%> <%@attribute name="isHistory" required="true" type="java.lang.Boolean"%>
@@ -19,7 +20,7 @@
- +
@@ -48,7 +49,7 @@
- +
diff --git a/src/main/webapp/WEB-INF/views/facility-authorization.jsp b/src/main/webapp/WEB-INF/views/facility-authorization.jsp index b4e1c211..bbdab851 100644 --- a/src/main/webapp/WEB-INF/views/facility-authorization.jsp +++ b/src/main/webapp/WEB-INF/views/facility-authorization.jsp @@ -14,7 +14,7 @@

- +
A new log entry was created: From dfa10c96e061850c72beb1dc7494fb02820406d1 Mon Sep 17 00:00:00 2001 From: ryans Date: Wed, 23 Apr 2025 12:14:52 -0400 Subject: [PATCH 2/3] fix remove --- src/main/webapp/WEB-INF/views/inventory/authorizers.jsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/WEB-INF/views/inventory/authorizers.jsp b/src/main/webapp/WEB-INF/views/inventory/authorizers.jsp index 4f90950e..bd8cdbd9 100644 --- a/src/main/webapp/WEB-INF/views/inventory/authorizers.jsp +++ b/src/main/webapp/WEB-INF/views/inventory/authorizers.jsp @@ -82,7 +82,7 @@ - + From 9dbca12718555f2bc494678e335c86fe5bd9bcd3 Mon Sep 17 00:00:00 2001 From: ryans Date: Wed, 23 Apr 2025 12:15:10 -0400 Subject: [PATCH 3/3] remove debug --- .../jlab/jam/presentation/controller/FacilityAuthorization.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/org/jlab/jam/presentation/controller/FacilityAuthorization.java b/src/main/java/org/jlab/jam/presentation/controller/FacilityAuthorization.java index 41ed66c3..4872975f 100644 --- a/src/main/java/org/jlab/jam/presentation/controller/FacilityAuthorization.java +++ b/src/main/java/org/jlab/jam/presentation/controller/FacilityAuthorization.java @@ -147,8 +147,6 @@ private void handleFacility( String username = request.getRemoteUser(); - System.err.println("REMOTE USER: " + username); - boolean isRfEditable = false; boolean isBeamEditable = false;