Multiple user referentials working with IPA.
[lgpl/argeo-commons.git] / org.argeo.util / src / org / argeo / osgi / useradmin / UserDirectory.java
index 727d9295da9e61fbb5d54e6b46e58327d31d4b25..05ed7cf7cef9260324307d66f6cac55c03cd5699 100644 (file)
@@ -1,52 +1,19 @@
 package org.argeo.osgi.useradmin;
 
-import java.util.Optional;
-
-import org.argeo.osgi.transaction.WorkControl;
+import org.argeo.util.directory.Directory;
+import org.argeo.util.directory.HierarchyUnit;
 import org.osgi.service.useradmin.Role;
 
 /** Information about a user directory. */
-public interface UserDirectory {
-       /**
-        * The base of the hierarchy defined by this directory. This could typically be
-        * an LDAP base DN.
-        */
-       String getGlobalId();
-       
-       String getName();
-
-//     /** The base DN of all entries in this user directory */
-//     LdapName getBaseDn();
-
-//     /** The related {@link XAResource} */
-//     XAResource getXaResource();
-
-       boolean isReadOnly();
-
-       boolean isDisabled();
-
-       String getUserObjectClass();
-
-//     String getUserBase();
-
-       String getGroupObjectClass();
-
-//     String getGroupBase();
-
-       Optional<String> getRealm();
-
-       Iterable<HierarchyUnit> getRootHierarchyUnits(boolean functionalOnly);
-
-       HierarchyUnit getHierarchyUnit(String path);
+public interface UserDirectory extends Directory {
 
        HierarchyUnit getHierarchyUnit(Role role);
 
+       Iterable<? extends Role> getHierarchyUnitRoles(HierarchyUnit hierarchyUnit, String filter, boolean deep);
+
        String getRolePath(Role role);
 
        String getRoleSimpleName(Role role);
 
        Role getRoleByPath(String path);
-
-       @Deprecated
-       void setTransactionControl(WorkControl transactionControl);
 }