X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=core%2Forg.argeo.suite.core%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fcore%2FSuiteMaintenanceService.java;fp=core%2Forg.argeo.suite.core%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fcore%2FSuiteMaintenanceService.java;h=b2173731da0edf0fc965ad6a51f627e64fcb25b9;hb=418ea1efbf3f0d6b706603c6ff1c0fdd17314773;hp=0000000000000000000000000000000000000000;hpb=70010c4afc5799622fcad5b075740d94da074798;p=gpl%2Fargeo-suite.git diff --git a/core/org.argeo.suite.core/src/org/argeo/suite/core/SuiteMaintenanceService.java b/core/org.argeo.suite.core/src/org/argeo/suite/core/SuiteMaintenanceService.java new file mode 100644 index 0000000..b217373 --- /dev/null +++ b/core/org.argeo.suite.core/src/org/argeo/suite/core/SuiteMaintenanceService.java @@ -0,0 +1,39 @@ +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. */ +public class SuiteMaintenanceService extends AbstractMaintenanceService { + + @Override + public boolean prepareJcrTree(Session adminSession) throws RepositoryException, IOException { + 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); + } + +}