]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.util/src/org/argeo/osgi/useradmin/AggregatingUserAdmin.java
Introduce system roles
[lgpl/argeo-commons.git] / org.argeo.util / src / org / argeo / osgi / useradmin / AggregatingUserAdmin.java
index 5613c28484ac4dff444505d5b96f3e1ab6e74434..ca1fa338bab58e785dbda260e8431f908c1bd811 100644 (file)
@@ -9,6 +9,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.TreeSet;
 
 import javax.naming.InvalidNameException;
 import javax.naming.ldap.LdapName;
@@ -159,7 +160,7 @@ public class AggregatingUserAdmin implements UserAdmin {
                if (!(ud instanceof AbstractUserDirectory))
                        throw new IllegalArgumentException("Only " + AbstractUserDirectory.class.getName() + " is supported");
                AbstractUserDirectory userDirectory = (AbstractUserDirectory) ud;
-               String basePath = userDirectory.getBasePath();
+               String basePath = userDirectory.getContext();
                if (isSystemRolesBaseDn(basePath)) {
                        this.systemRoles = userDirectory;
                        systemRoles.setExternalRoles(this);
@@ -270,4 +271,9 @@ public class AggregatingUserAdmin implements UserAdmin {
        protected void preDestroy(UserDirectory userDirectory) {
        }
 
+       public Set<UserDirectory> getUserDirectories() {
+               TreeSet<UserDirectory> res = new TreeSet<>((o1, o2) -> o1.getContext().compareTo(o2.getContext()));
+               res.addAll(businessRoles.values());
+               return res;
+       }
 }