From 5c6429819d09bde9e769d0a0d9ed9feb1a11bd16 Mon Sep 17 00:00:00 2001 From: sharonl <6546457+sharonluong@users.noreply.github.com> Date: Thu, 15 Feb 2024 17:12:40 -0500 Subject: [PATCH] Bxc 4435 add permission (#1678) * BXC-4435 add new view settings permission and assign it to a user role * BXC-4435 update terminology --------- Co-authored-by: Sharon Luong --- .../src/main/java/edu/unc/lib/boxc/auth/api/Permission.java | 3 ++- .../src/main/java/edu/unc/lib/boxc/auth/api/UserRole.java | 4 +++- .../camel/viewSettings/ViewSettingRequestProcessor.java | 4 ++-- .../camel/viewSettings/ViewSettingRequestProcessorTest.java | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/auth-api/src/main/java/edu/unc/lib/boxc/auth/api/Permission.java b/auth-api/src/main/java/edu/unc/lib/boxc/auth/api/Permission.java index eea6700253..b71de7abde 100644 --- a/auth-api/src/main/java/edu/unc/lib/boxc/auth/api/Permission.java +++ b/auth-api/src/main/java/edu/unc/lib/boxc/auth/api/Permission.java @@ -27,6 +27,7 @@ public enum Permission { changePatronAccess, assignStaffRoles, editResourceType, + editViewSettings, runEnhancements, reindex; -} \ No newline at end of file +} diff --git a/auth-api/src/main/java/edu/unc/lib/boxc/auth/api/UserRole.java b/auth-api/src/main/java/edu/unc/lib/boxc/auth/api/UserRole.java index 6f0bfd3b21..e3c6b1578a 100644 --- a/auth-api/src/main/java/edu/unc/lib/boxc/auth/api/UserRole.java +++ b/auth-api/src/main/java/edu/unc/lib/boxc/auth/api/UserRole.java @@ -7,6 +7,7 @@ import static edu.unc.lib.boxc.auth.api.Permission.destroy; import static edu.unc.lib.boxc.auth.api.Permission.editDescription; import static edu.unc.lib.boxc.auth.api.Permission.editResourceType; +import static edu.unc.lib.boxc.auth.api.Permission.editViewSettings; import static edu.unc.lib.boxc.auth.api.Permission.ingest; import static edu.unc.lib.boxc.auth.api.Permission.markForDeletion; import static edu.unc.lib.boxc.auth.api.Permission.markForDeletionUnit; @@ -53,7 +54,8 @@ public enum UserRole { // Staff roles canAccess("canAccess", true, canViewOriginals, viewHidden), canIngest("canIngest", true, canAccess, ingest), - canDescribe("canDescribe", true, canAccess, editDescription, bulkUpdateDescription), + canDescribe("canDescribe", true, canAccess, + editDescription, bulkUpdateDescription, editViewSettings), canProcess("canProcess", true, canDescribe, move, orderMembers, markForDeletion, changePatronAccess), canManage("canManage", true, canProcess, diff --git a/services-camel-app/src/main/java/edu/unc/lib/boxc/services/camel/viewSettings/ViewSettingRequestProcessor.java b/services-camel-app/src/main/java/edu/unc/lib/boxc/services/camel/viewSettings/ViewSettingRequestProcessor.java index e7d7b8e6bd..b762c59df4 100644 --- a/services-camel-app/src/main/java/edu/unc/lib/boxc/services/camel/viewSettings/ViewSettingRequestProcessor.java +++ b/services-camel-app/src/main/java/edu/unc/lib/boxc/services/camel/viewSettings/ViewSettingRequestProcessor.java @@ -28,8 +28,8 @@ public void process(Exchange exchange) throws Exception { var agent = request.getAgent(); var pid = PIDs.get(request.getObjectPidString()); - accessControlService.assertHasAccess("User does not have permission to update view behavior", - pid, agent.getPrincipals(), Permission.ingest); + accessControlService.assertHasAccess("User does not have permission to update view settings", + pid, agent.getPrincipals(), Permission.editViewSettings); var repositoryObject = repositoryObjectLoader.getRepositoryObject(pid); var behavior = request.getViewBehavior(); diff --git a/services-camel-app/src/test/java/edu/unc/lib/boxc/services/camel/viewSettings/ViewSettingRequestProcessorTest.java b/services-camel-app/src/test/java/edu/unc/lib/boxc/services/camel/viewSettings/ViewSettingRequestProcessorTest.java index d504d59a27..e320fc47d8 100644 --- a/services-camel-app/src/test/java/edu/unc/lib/boxc/services/camel/viewSettings/ViewSettingRequestProcessorTest.java +++ b/services-camel-app/src/test/java/edu/unc/lib/boxc/services/camel/viewSettings/ViewSettingRequestProcessorTest.java @@ -71,7 +71,7 @@ public void testUpdateViewBehaviorNoPermission() throws Exception { Assertions.assertThrows(AccessRestrictionException.class, () -> { doThrow(new AccessRestrictionException()).when(accessControlService) - .assertHasAccess(any(), any(PID.class), any(), eq(Permission.ingest)); + .assertHasAccess(any(), any(PID.class), any(), eq(Permission.editViewSettings)); processor.process(exchange); }); }