]> git.argeo.org Git - gpl/argeo-suite.git/blob - org.argeo.app.jcr/src/org/argeo/internal/app/jcr/SuiteMaintenanceService.java
Releasing
[gpl/argeo-suite.git] / org.argeo.app.jcr / src / org / argeo / internal / app / jcr / SuiteMaintenanceService.java
1 package org.argeo.internal.app.jcr;
2
3 import java.io.IOException;
4
5 import javax.jcr.Node;
6 import javax.jcr.RepositoryException;
7 import javax.jcr.Session;
8 import javax.jcr.nodetype.NodeType;
9 import javax.jcr.security.Privilege;
10
11 import org.argeo.api.cms.CmsConstants;
12 import org.argeo.app.api.EntityType;
13 import org.argeo.jcr.JcrUtils;
14 import org.argeo.maintenance.AbstractMaintenanceService;
15
16 /** Initialises JCR in an Argeo Suite backend. */
17 public class SuiteMaintenanceService extends AbstractMaintenanceService {
18 @Override
19 public boolean prepareJcrTree(Session adminSession) throws RepositoryException, IOException {
20 boolean modified = false;
21 Node rootNode = adminSession.getRootNode();
22 if (!rootNode.hasNode(EntityType.user.name())) {
23 rootNode.addNode(EntityType.user.name(), NodeType.NT_UNSTRUCTURED);
24 modified = true;
25 }
26 if (modified)
27 adminSession.save();
28 return modified;
29 }
30
31 @Override
32 public void configurePrivileges(Session adminSession) throws RepositoryException {
33 JcrUtils.addPrivilege(adminSession, EntityType.user.basePath(), CmsConstants.ROLE_USER_ADMIN,
34 Privilege.JCR_ALL);
35 // JcrUtils.addPrivilege(adminSession, "/", SuiteRole.coworker.dn(),
36 // Privilege.JCR_READ);
37 }
38
39 }