]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.util/src/org/argeo/osgi/useradmin/UserDirectory.java
Introduce system roles
[lgpl/argeo-commons.git] / org.argeo.util / src / org / argeo / osgi / useradmin / UserDirectory.java
index ff80c5ac8385bf4aacac7699102754004cbdb6a6..18bb1a0a6eb6987e08c11c34633362f8aa2e7e57 100644 (file)
@@ -1,15 +1,25 @@
 package org.argeo.osgi.useradmin;
 
-import javax.naming.ldap.LdapName;
-import javax.transaction.xa.XAResource;
+import java.util.Optional;
+
+import org.argeo.osgi.transaction.WorkControl;
+import org.osgi.service.useradmin.Role;
 
 /** Information about a user directory. */
 public interface UserDirectory {
-       /** The base DN of all entries in this user directory */
-       LdapName getBaseDn();
+       /**
+        * The base of the hierarchy defined by this directory. This could typically be
+        * an LDAP base DN.
+        */
+       String getContext();
+       
+       String getName();
+
+//     /** The base DN of all entries in this user directory */
+//     LdapName getBaseDn();
 
-       /** The related {@link XAResource} */
-       XAResource getXaResource();
+//     /** The related {@link XAResource} */
+//     XAResource getXaResource();
 
        boolean isReadOnly();
 
@@ -17,9 +27,26 @@ public interface UserDirectory {
 
        String getUserObjectClass();
 
-       String getUserBase();
+//     String getUserBase();
 
        String getGroupObjectClass();
 
-       String getGroupBase();
+//     String getGroupBase();
+
+       Optional<String> getRealm();
+
+       Iterable<HierarchyUnit> getDirectHierarchyUnits(boolean functionalOnly);
+
+       HierarchyUnit getHierarchyUnit(String path);
+
+       HierarchyUnit getHierarchyUnit(Role role);
+
+       String getRolePath(Role role);
+
+       String getRoleSimpleName(Role role);
+
+       Role getRoleByPath(String path);
+
+       @Deprecated
+       void setTransactionControl(WorkControl transactionControl);
 }