From 6e9b96b77a0d6e21d4cdfab7728aac18cc985d70 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 15 Jun 2012 13:54:41 +0200 Subject: [PATCH] Remove ROLE_BOUND_USER from roles list in user and profile edition If a user has this role the remove button will appear disabled. FEA: ItEr76S30PermissionsEnhancements --- .../org/libreplan/web/users/IProfileModel.java | 5 ----- .../web/users/ProfileCRUDController.java | 16 +++++++++------- .../org/libreplan/web/users/ProfileModel.java | 9 --------- .../libreplan/web/users/UserCRUDController.java | 15 +++++++++++---- 4 files changed, 20 insertions(+), 25 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/IProfileModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/IProfileModel.java index 070dd2447..bb05fb83c 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/IProfileModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/IProfileModel.java @@ -60,11 +60,6 @@ public interface IProfileModel { */ void confirmSave() throws ValidationException; - /** - * Returns a list of the available user roles in the system. - */ - List getAllRoles(); - /** * Gets the current {@link Profile}. * diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/ProfileCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/ProfileCRUDController.java index 97bc2a5c7..e0177b04d 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/ProfileCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/ProfileCRUDController.java @@ -23,6 +23,8 @@ package org.libreplan.web.users; import static org.libreplan.web.I18nHelper._; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.apache.commons.logging.LogFactory; @@ -61,15 +63,19 @@ public class ProfileCRUDController extends BaseCRUDController { public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); userRolesCombo = (Combobox) editWindow.getFellowIfAny("userRolesCombo"); - appendAllUserRoles(userRolesCombo); + appendAllUserRolesExceptRoleBoundUser(userRolesCombo); } /** * Appends the existing UserRoles to the Combobox passed. * @param combo */ - private void appendAllUserRoles(Combobox combo) { - for(UserRole role : getAllRoles()) { + private void appendAllUserRolesExceptRoleBoundUser(Combobox combo) { + List roles = new ArrayList(Arrays.asList(UserRole + .values())); + roles.remove(UserRole.ROLE_BOUND_USER); + + for (UserRole role : roles) { Comboitem item = combo.appendItem(_(role.getDisplayName())); item.setValue(role); } @@ -87,10 +93,6 @@ public class ProfileCRUDController extends BaseCRUDController { return profileModel.getProfile(); } - public List getAllRoles() { - return profileModel.getAllRoles(); - } - public void addSelectedRole() { Comboitem comboItem = userRolesCombo.getSelectedItem(); if(comboItem != null) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/ProfileModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/ProfileModel.java index d05aaf1ff..e2fecf69b 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/ProfileModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/ProfileModel.java @@ -100,15 +100,6 @@ public class ProfileModel implements IProfileModel { } } - @Override - public List getAllRoles() { - List list = new ArrayList(); - for(UserRole role : UserRole.values()) { - list.add(role); - } - return list; - } - @Override public void addRole(UserRole role) { profile.addRole(role); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/UserCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/UserCRUDController.java index 62d275d38..28ef82f3b 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/UserCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/UserCRUDController.java @@ -23,6 +23,8 @@ package org.libreplan.web.users; import static org.libreplan.web.I18nHelper._; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import javax.annotation.Resource; @@ -121,7 +123,7 @@ public class UserCRUDController extends BaseCRUDController implements passwordConfirmationBox = (Textbox) editWindow.getFellowIfAny("passwordConfirmation"); profileAutocomplete = (Autocomplete) editWindow.getFellowIfAny("profileAutocomplete"); userRolesCombo = (Combobox) editWindow.getFellowIfAny("userRolesCombo"); - appendAllUserRoles(userRolesCombo); + appendAllUserRolesExceptRoleBoundUser(userRolesCombo); boundResourceGroupbox = (Groupbox) editWindow .getFellowIfAny("boundResourceGroupbox"); @@ -134,8 +136,12 @@ public class UserCRUDController extends BaseCRUDController implements * Appends the existing UserRoles to the Combobox passed. * @param combo */ - private void appendAllUserRoles(Combobox combo) { - for(UserRole role : UserRole.values()) { + private void appendAllUserRolesExceptRoleBoundUser(Combobox combo) { + List roles = new ArrayList(Arrays.asList(UserRole + .values())); + roles.remove(UserRole.ROLE_BOUND_USER); + + for (UserRole role : roles) { Comboitem item = combo.appendItem(_(role.getDisplayName())); item.setValue(role); } @@ -313,7 +319,8 @@ public class UserCRUDController extends BaseCRUDController implements removeRole(role); } }); - removeButton.setDisabled(getLdapUserRolesLdapConfiguration()); + removeButton.setDisabled(getLdapUserRolesLdapConfiguration() + || role.equals(UserRole.ROLE_BOUND_USER)); row.appendChild(removeButton); } };