From 4a03b4908b129d5dd9eb32847ab761a7a0c6509b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Haarla=CC=88nder?= Date: Fri, 11 Feb 2022 16:34:55 +0100 Subject: [PATCH] IQSS#8417 Only show permissions that are available for the dvobject --- .../edu/harvard/iq/dataverse/ManagePermissionsPage.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/ManagePermissionsPage.java b/src/main/java/edu/harvard/iq/dataverse/ManagePermissionsPage.java index c17e666afb1..590cfb9a671 100644 --- a/src/main/java/edu/harvard/iq/dataverse/ManagePermissionsPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/ManagePermissionsPage.java @@ -159,12 +159,11 @@ public List initRoleAssignments() { List raList = null; if (dvObject != null && dvObject.getId() != null) { Set ras = roleService.rolesAssignments(dvObject); + List availableRoles = getAvailableRoles(); raList = new ArrayList<>(ras.size()); for (RoleAssignment roleAssignment : ras) { - //do not display DatasetCreator roles on dataset permission level, as it only makes sense on Dataverse level - boolean isDatasetCreatorOnDataverse = dvObject instanceof Dataset && DataverseRole.DS_CONTRIBUTOR.equals(roleAssignment.getRole().getAlias()); - // for files, only show role assignments which can download - if ((!(dvObject instanceof DataFile) || roleAssignment.getRole().permissions().contains(Permission.DownloadFile)) && !isDatasetCreatorOnDataverse) { + // only show roles that are available for this DVObject + if (availableRoles.contains(roleAssignment.getRole())) { RoleAssignee roleAssignee = roleAssigneeService.getRoleAssignee(roleAssignment.getAssigneeIdentifier()); if (roleAssignee != null) { raList.add(new RoleAssignmentRow(roleAssignment, roleAssignee.getDisplayInfo()));