]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/internal/auth/CmsUserManagerImpl.java
Introduce hierarchies in user management
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / auth / CmsUserManagerImpl.java
index 19136606da492a3f5d6029bc5f526a5907aa03fd..84562ebd16660a860df397778421037581f9ba64 100644 (file)
@@ -17,6 +17,7 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.TreeSet;
 import java.util.UUID;
 
 import javax.naming.InvalidNameException;
@@ -229,7 +230,7 @@ public class CmsUserManagerImpl implements CmsUserManager {
                Map<String, String> dns = new HashMap<String, String>();
                for (UserDirectory userDirectory : userDirectories.keySet()) {
                        Boolean readOnly = userDirectory.isReadOnly();
-                       String baseDn = userDirectory.getBaseDn().toString();
+                       String baseDn = userDirectory.getBasePath();
 
                        if (onlyWritable && readOnly)
                                continue;
@@ -243,6 +244,12 @@ public class CmsUserManagerImpl implements CmsUserManager {
                return dns;
        }
 
+       public Set<UserDirectory> getUserDirectories() {
+               TreeSet<UserDirectory> res = new TreeSet<>((o1, o2) -> o1.getBasePath().compareTo(o2.getBasePath()));
+               res.addAll(userDirectories.keySet());
+               return res;
+       }
+
        public String buildDistinguishedName(String localId, String baseDn, int type) {
                Map<String, String> dns = getKnownBaseDns(true);
                Dictionary<String, ?> props = UserAdminConf.uriAsProperties(dns.get(baseDn));