X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.util%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FLdifUserAdmin.java;h=0a925e4eb41b3612f531f3ace8534a198065d72d;hb=eb4324be6ac9cdff15828a21ee7d3f6ca2f19fb9;hp=90b64b257a337ce9fa7cfc6f89ea8bae78542199;hpb=99bca5f6b71c24837c23cf2a9bb944e09dca3dea;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.util/src/org/argeo/osgi/useradmin/LdifUserAdmin.java b/org.argeo.util/src/org/argeo/osgi/useradmin/LdifUserAdmin.java index 90b64b257..0a925e4eb 100644 --- a/org.argeo.util/src/org/argeo/osgi/useradmin/LdifUserAdmin.java +++ b/org.argeo.util/src/org/argeo/osgi/useradmin/LdifUserAdmin.java @@ -15,7 +15,6 @@ import java.util.Collections; import java.util.Dictionary; import java.util.HashSet; import java.util.Hashtable; -import java.util.Iterator; import java.util.List; import java.util.Objects; import java.util.Set; @@ -157,10 +156,10 @@ public class LdifUserAdmin extends AbstractUserDirectory { String objectClass = objectClasses.next().toString(); // System.out.println(" " + objectClass); if (objectClass.toLowerCase().equals(inetOrgPerson.name().toLowerCase())) { - users.put(key, new LdifUser(this, key, attributes)); + users.put(key, newUser(key, attributes)); break objectClasses; } else if (objectClass.toLowerCase().equals(getGroupObjectClass().toLowerCase())) { - groups.put(key, new LdifGroup(this, key, attributes)); + groups.put(key, newGroup(key, attributes)); break objectClasses; // } else if (objectClass.equalsIgnoreCase(LdapObjs.organization.name())) { // // we only consider organizations which are not groups @@ -171,7 +170,7 @@ public class LdifUserAdmin extends AbstractUserDirectory { // if (getUserBase().equalsIgnoreCase(name) || getGroupBase().equalsIgnoreCase(name)) // break objectClasses; // skip // TODO skip if it does not contain groups or users - hierarchy.put(key, new LdifHierarchyUnit(this, key, HierarchyUnit.OU, attributes)); + hierarchy.put(key, new LdifHierarchyUnit(this, key, attributes)); break objectClasses; } } @@ -330,8 +329,18 @@ public class LdifUserAdmin extends AbstractUserDirectory { } @Override - public Iterable getRootHierarchyUnits() { - return rootHierarchyUnits; + public Iterable getDirectHierarchyUnits(boolean functionalOnly) { + if (functionalOnly) { + List res = new ArrayList<>(); + for (HierarchyUnit hu : rootHierarchyUnits) { + if (hu.isFunctional()) + res.add(hu); + } + return res; + + } else { + return rootHierarchyUnits; + } } @Override