Fix glitches while testing the Security Perspective with LDAP backend
authorBruno Sinou <bsinou@argeo.org>
Wed, 6 Apr 2016 13:38:28 +0000 (13:38 +0000)
committerBruno Sinou <bsinou@argeo.org>
Wed, 6 Apr 2016 13:38:28 +0000 (13:38 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@8858 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.security.core/src/org/argeo/osgi/useradmin/LdapUserAdmin.java
org.argeo.security.core/src/org/argeo/osgi/useradmin/LdifUserAdmin.java

index 73dc510eccae80b2a1702564f518aecee8a5242c..7acb7dffd915808a7297ed09f336b9015aa11070 100644 (file)
@@ -106,7 +106,7 @@ public class LdapUserAdmin extends AbstractUserDirectory {
                                                + name);
                        return res;
                } catch (NamingException e) {
-                       throw new UserDirectoryException("Cannot get role for " + name, e);
+                       return null;
                }
        }
 
@@ -193,7 +193,7 @@ public class LdapUserAdmin extends AbstractUserDirectory {
                        }
                        // add
                        for (LdapName dn : wc.getNewUsers().keySet()) {
-                               if (!entryExists(dn))
+                               if (entryExists(dn))
                                        throw new UserDirectoryException("User to create found "
                                                        + dn);
                        }
index 859adde09233f13cb6305311bfed2ef43ba0afae..7b87a4b6e7fbd497cf8786c853cb7616589e8171 100644 (file)
@@ -163,13 +163,13 @@ public class LdifUserAdmin extends AbstractUserDirectory {
                        res.addAll(groups.values());
                } else {
                        for (DirectoryUser user : users.values()) {
-//                             System.out.println("\n" + user.getName());
-//                             Dictionary<String, Object> props = user.getProperties();
-//                             for (Enumeration<String> keys = props.keys(); keys
-//                                             .hasMoreElements();) {
-//                                     String key = keys.nextElement();
-//                                     System.out.println(" " + key + "=" + props.get(key));
-//                             }
+                               // System.out.println("\n" + user.getName());
+                               // Dictionary<String, Object> props = user.getProperties();
+                               // for (Enumeration<String> keys = props.keys(); keys
+                               // .hasMoreElements();) {
+                               // String key = keys.nextElement();
+                               // System.out.println(" " + key + "=" + props.get(key));
+                               // }
                                if (f.match(user.getProperties()))
                                        res.add(user);
                        }
@@ -200,13 +200,15 @@ public class LdifUserAdmin extends AbstractUserDirectory {
                        else if (groups.containsKey(dn))
                                groups.remove(dn);
                        else
-                               throw new UserDirectoryException("User to delete no found "
+                               throw new UserDirectoryException("User to delete not found "
                                                + dn);
                }
                // add
                for (LdapName dn : wc.getNewUsers().keySet()) {
                        DirectoryUser user = wc.getNewUsers().get(dn);
-                       if (Role.USER == user.getType())
+                       if (users.containsKey(dn) || groups.containsKey(dn))
+                               throw new UserDirectoryException("User to create found " + dn);
+                       else if (Role.USER == user.getType())
                                users.put(dn, user);
                        else if (Role.GROUP == user.getType())
                                groups.put(dn, (DirectoryGroup) user);