X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=org.argeo.suite.core%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fcore%2FSuiteMaintenanceService.java;h=b2173731da0edf0fc965ad6a51f627e64fcb25b9;hp=7e54eaa5411bf93a246d3950b9c4759cb4db9f46;hb=8476423fa4b5a74baa2cc17afbaf61b3739be80e;hpb=8630eb1e679307eb8a8448f80a99cc530402d8d3 diff --git a/org.argeo.suite.core/src/org/argeo/suite/core/SuiteMaintenanceService.java b/org.argeo.suite.core/src/org/argeo/suite/core/SuiteMaintenanceService.java index 7e54eaa..b217373 100644 --- a/org.argeo.suite.core/src/org/argeo/suite/core/SuiteMaintenanceService.java +++ b/org.argeo.suite.core/src/org/argeo/suite/core/SuiteMaintenanceService.java @@ -2,9 +2,15 @@ package org.argeo.suite.core; import java.io.IOException; +import javax.jcr.Node; import javax.jcr.RepositoryException; import javax.jcr.Session; +import javax.jcr.nodetype.NodeType; +import javax.jcr.security.Privilege; +import org.argeo.api.NodeConstants; +import org.argeo.entity.EntityType; +import org.argeo.jcr.JcrUtils; import org.argeo.maintenance.AbstractMaintenanceService; /** Initialises an Argeo Suite backend. */ @@ -12,8 +18,22 @@ public class SuiteMaintenanceService extends AbstractMaintenanceService { @Override public boolean prepareJcrTree(Session adminSession) throws RepositoryException, IOException { - //EntityJcrUtils.getOrAddFormFolder(adminSession.getRootNode(), EntityNames.FORM_BASE); - return adminSession.hasPendingChanges(); + boolean modified = false; + Node rootNode = adminSession.getRootNode(); + if (!rootNode.hasNode(EntityType.user.name())) { + rootNode.addNode(EntityType.user.name(), NodeType.NT_UNSTRUCTURED); + modified = true; + } + if (modified) + adminSession.save(); + return modified; + } + + @Override + public void configurePrivileges(Session adminSession) throws RepositoryException { + JcrUtils.addPrivilege(adminSession, EntityType.user.basePath(), NodeConstants.ROLE_USER_ADMIN, + Privilege.JCR_ALL); + //JcrUtils.addPrivilege(adminSession, "/", SuiteRole.coworker.dn(), Privilege.JCR_READ); } }