From aa989b07ae5cd3cc13b3449ddee38066dbfdf25a Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Thu, 7 Jul 2011 10:04:01 +0200 Subject: [PATCH] Fixed issue if user sets duplicated LDAP roles for the same LibrePlan role. FEA: ItEr75S06LdapAuhenticationItEr74S09 --- .../common/entities/LDAPConfiguration.java | 4 ++-- .../web/common/ConfigurationController.java | 14 ++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/common/entities/LDAPConfiguration.java b/navalplanner-business/src/main/java/org/navalplanner/business/common/entities/LDAPConfiguration.java index 9337a5c24..a1aca5e0a 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/common/entities/LDAPConfiguration.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/common/entities/LDAPConfiguration.java @@ -185,8 +185,8 @@ public class LDAPConfiguration extends BaseEntity { return Collections.unmodifiableSet(configurationRolesLdap); } - public void setConfigurationRolesLdap( - String roleLibreplan, List rolesLdap) { + public void setConfigurationRolesLdap(String roleLibreplan, + Set rolesLdap) { removeConfigurationRolesLdapForRoleLibreplan(roleLibreplan); for (String roleLdap : rolesLdap) { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/ConfigurationController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/ConfigurationController.java index becfb0020..dbd5cb195 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/ConfigurationController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/ConfigurationController.java @@ -29,6 +29,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.ConcurrentModificationException; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -818,12 +819,13 @@ public class ConfigurationController extends GenericForwardComposer { }, new Util.Setter() { @Override public void set(String value) { - configurationModel - .getLdapConfiguration() - .setConfigurationRolesLdap( - role.name(), - Arrays.asList(StringUtils - .split(value, ";"))); + // Created a set in order to avoid duplicates + Set rolesLdap = new HashSet( + Arrays.asList(StringUtils.split(value, + ";"))); + configurationModel.getLdapConfiguration() + .setConfigurationRolesLdap(role.name(), + rolesLdap); } }); textbox.setWidth("300px");