diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/CMSPermissionsPane.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/CMSPermissionsPane.java index f239d797c..b140a2a6d 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/CMSPermissionsPane.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/CMSPermissionsPane.java @@ -143,6 +143,26 @@ public class CMSPermissionsPane extends SimpleContainer implements Resettable, this.selectionModel = selectionModel; this.privilegeNameMap = privilegeNameMap; } + + public CMSPermissionsPane( + final Class privilegesClass, + final CcmObjectSelectionModel selectionModel) { + + final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); + final PermissionManager permissionManager = cdiUtil.findBean( + PermissionManager.class); + final List privilegesFromClass = permissionManager + .listDefiniedPrivileges(privilegesClass); + + final Map nameMap = new HashMap<>(); + for(final String privilege: privilegesFromClass) { + nameMap.put(privilege, privilege); + } + + this.privileges = privilegesFromClass.toArray(new String[]{}); + this.selectionModel = selectionModel; + this.privilegeNameMap = nameMap; + } /** * Overwrite this method to construct your default Permissions Pane with the @@ -253,9 +273,10 @@ public class CMSPermissionsPane extends SimpleContainer implements Resettable, final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final PermissionManager permissionManager = cdiUtil.findBean( PermissionManager.class); - final List privileges = permissionManager - .listDefiniedPrivileges(ItemPrivileges.class); - final List