X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2FCmsUserManager.java;h=4017c7ebf3b56a18f8bffca4ec0888cb9ffa9734;hb=285c23f26c4d634cd139d393ebcb708187d5e960;hp=040138878603fc1f0cade62ef1cd00be7d58a471;hpb=4012bedd8870634488b307d2233590fb1226e5d4;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/CmsUserManager.java b/org.argeo.cms/src/org/argeo/cms/CmsUserManager.java index 040138878..4017c7ebf 100644 --- a/org.argeo.cms/src/org/argeo/cms/CmsUserManager.java +++ b/org.argeo.cms/src/org/argeo/cms/CmsUserManager.java @@ -7,9 +7,11 @@ import java.util.Set; import javax.security.auth.Subject; +import org.argeo.cms.auth.SystemRole; import org.argeo.osgi.useradmin.UserDirectory; import org.argeo.util.directory.HierarchyUnit; import org.osgi.framework.InvalidSyntaxException; +import org.osgi.service.useradmin.Group; import org.osgi.service.useradmin.Role; import org.osgi.service.useradmin.User; @@ -55,9 +57,21 @@ public interface CmsUserManager { /* * EDITION */ - /** Creates a new user.*/ + /** Creates a new user. */ User createUser(String username, Map properties, Map credentials); + /** Creates a group. */ + Group getOrCreateGroup(HierarchyUnit groups, String commonName); + + /** Creates a new system role. */ + Group getOrCreateSystemRole(HierarchyUnit roles, SystemRole systemRole); + + /** Add additional object classes to this role. */ + void addObjectClasses(Role role, Set objectClasses, Map additionalProperties); + + /** Add a member to this group. */ + void addMember(Group group, Role role); + /* MISCELLANEOUS */ /** Returns the dn of a role given its local ID */ String buildDefaultDN(String localId, int type); @@ -92,5 +106,5 @@ public interface CmsUserManager { UserDirectory getDirectory(Role role); /** Create a new hierarchy unit. Does nothing if it already exists. */ - HierarchyUnit createHierarchyUnit(UserDirectory directory, String path); + HierarchyUnit getOrCreateHierarchyUnit(UserDirectory directory, String path); } \ No newline at end of file