private Set<Permission> getValueAsPermissionSet() { Object nativeArray = this.roleEditView.getForm().getValue(RolesDataSource.Field.PERMISSIONS); if (this.originalValue == null) { this.originalValue = nativeArray; } ListGridRecord[] permissionRecords = convertToListGridRecordArray((JavaScriptObject) nativeArray); return RolesDataSource.toPermissionSet(permissionRecords); }
public RolesView(String locatorId, boolean hasManageSecurity) { super(locatorId, null); final RolesDataSource datasource = RolesDataSource.getInstance(); setDataSource(datasource); setEscapeHtmlInDetailsLinkColumn(true); this.hasManageSecurity = hasManageSecurity; }
private void updatePermissions(Boolean authorized, Permission permission) { String messageString = null; boolean redrawRequired = false; if (authorized) { this.selectedPermissions.add(permission); if (permission == Permission.MANAGE_SECURITY) { // MANAGE_SECURITY implies all other perms. if (this.selectedPermissions.addAll(EnumSet.allOf(Permission.class))) { messageString = MSG.view_adminRoles_permissions_autoselecting_manageSecurity_implied(); redrawRequired = true; } } else if (permission == Permission.MANAGE_INVENTORY) { // MANAGE_INVENTORY implies all Resource perms. if (this.selectedPermissions.addAll(Permission.RESOURCE_ALL)) { messageString = MSG.view_adminRoles_permissions_autoselecting_manageInventory_implied(); redrawRequired = true; } } else if (permission == Permission.CONFIGURE_WRITE) { // CONFIGURE_WRITE implies CONFIGURE_READ. if (this.selectedPermissions.add(Permission.CONFIGURE_READ)) { messageString = MSG.view_adminRoles_permissions_autoselecting_configureWrite_implied(); redrawRequired = true; } } } else { this.selectedPermissions.remove(permission); } ListGridRecord[] permissionRecords = RolesDataSource.toRecordArray(this.selectedPermissions); this.roleEditView.getForm().setValue(RolesDataSource.Field.PERMISSIONS, permissionRecords); if (redrawRequired) { redraw(); } if (messageString != null) { Message message = new Message(messageString, EnumSet.of(Message.Option.Transient)); CoreGUI.getMessageCenter().notify(message); } }