Massive package refactoring
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / CmsUserManager.java
index 4017c7ebf3b56a18f8bffca4ec0888cb9ffa9734..3e7d31e3e3e3dc291030a2e06e91743b80eb9c7c 100644 (file)
@@ -7,9 +7,9 @@ import java.util.Set;
 
 import javax.security.auth.Subject;
 
+import org.argeo.api.cms.directory.HierarchyUnit;
 import org.argeo.cms.auth.SystemRole;
-import org.argeo.osgi.useradmin.UserDirectory;
-import org.argeo.util.directory.HierarchyUnit;
+import org.argeo.cms.osgi.useradmin.UserDirectory;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.service.useradmin.Group;
 import org.osgi.service.useradmin.Role;
@@ -54,6 +54,13 @@ public interface CmsUserManager {
        /** Search among groups including system roles and users if needed */
        List<User> listGroups(String filter, boolean includeUsers, boolean includeSystemRoles);
 
+//     /**
+//      * Lists functional accounts, that is users with regular access to the system
+//      * under this functional hierarchy unit (which probably have technical direct
+//      * sub hierarchy units), excluding groups which are not explicitly users.
+//      */
+//     Set<User> listAccounts(HierarchyUnit hierarchyUnit, boolean deep);
+
        /*
         * EDITION
         */
@@ -69,8 +76,14 @@ public interface CmsUserManager {
        /** Add additional object classes to this role. */
        void addObjectClasses(Role role, Set<String> objectClasses, Map<String, Object> additionalProperties);
 
+       /** Add additional object classes to this hierarchy unit. */
+       void addObjectClasses(HierarchyUnit hierarchyUnit, Set<String> objectClasses,
+                       Map<String, Object> additionalProperties);
+
        /** Add a member to this group. */
        void addMember(Group group, Role role);
+       
+       void edit(Runnable action);
 
        /* MISCELLANEOUS */
        /** Returns the dn of a role given its local ID */