X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fuseradmin%2FSimpleJcrSecurityModel.java;h=9d26f13352ffbccbfb5ed9a6f237f0be2a707b91;hb=2b3904582518de706357fd2a8216a47ca77dfc39;hp=c39f9e56d105c9b15b249eb02b24ba0eb8a5d5bc;hpb=f2688921e89c75ee626ff79b64105c577c415cca;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/useradmin/SimpleJcrSecurityModel.java b/org.argeo.cms/src/org/argeo/cms/internal/useradmin/SimpleJcrSecurityModel.java index c39f9e56d..9d26f1335 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/useradmin/SimpleJcrSecurityModel.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/useradmin/SimpleJcrSecurityModel.java @@ -25,6 +25,7 @@ import javax.jcr.security.Privilege; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.jackrabbit.core.security.user.UserAccessControlProvider; import org.argeo.ArgeoException; import org.argeo.cms.internal.auth.JcrSecurityModel; import org.argeo.jcr.ArgeoJcrConstants; @@ -45,6 +46,21 @@ public class SimpleJcrSecurityModel implements JcrSecurityModel { /** The home base path. */ private String homeBasePath = "/home"; + private String peopleBasePath = ArgeoJcrConstants.PEOPLE_BASE_PATH; + + @Override + public void init(Session adminSession) throws RepositoryException { + JcrUtils.mkdirs(adminSession, homeBasePath); + JcrUtils.mkdirs(adminSession, peopleBasePath); + adminSession.save(); + + JcrUtils.addPrivilege(adminSession, homeBasePath, + UserAccessControlProvider.USER_ADMIN_GROUP_NAME, + Privilege.JCR_READ); + JcrUtils.addPrivilege(adminSession, peopleBasePath, + UserAccessControlProvider.USER_ADMIN_GROUP_NAME, + Privilege.JCR_ALL); + } public synchronized Node sync(Session session, String username, List roles) { @@ -79,8 +95,7 @@ public class SimpleJcrSecurityModel implements JcrSecurityModel { Node userProfile = UserJcrUtils.getUserProfile(session, username); // new user if (userProfile == null) { - String personPath = generateUserPath( - ArgeoJcrConstants.PEOPLE_BASE_PATH, username); + String personPath = generateUserPath(peopleBasePath, username); Node personBase = JcrUtils.mkdirs(session, personPath); userProfile = personBase.addNode(ArgeoNames.ARGEO_PROFILE); userProfile.addMixin(ArgeoTypes.ARGEO_USER_PROFILE);