Improve workgroups and JCR file system.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / HomeRepository.java
index bfcb940c1d8336c1d74f8b7fb8c12f85609f1fed..1546a0b6786be387df8e4311c7225f86f77cafdd 100644 (file)
@@ -165,12 +165,13 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants {
                }
                try {
                        // TODO enhance transformation of cn to a valid node name
-                       String relPath = cn.replaceAll("[^a-zA-Z0-9]", "_");
+                       // String relPath = cn.replaceAll("[^a-zA-Z0-9]", "_");
+                       String relPath = JcrUtils.replaceInvalidChars(cn);
                        newWorkgroup = JcrUtils.mkdirs(adminSession.getNode(groupsBasePath), relPath, NodeType.NT_UNSTRUCTURED);
                        newWorkgroup.addMixin(NodeTypes.NODE_GROUP_HOME);
                        newWorkgroup.setProperty(NodeNames.LDAP_CN, cn);
                        adminSession.save();
-                       JcrUtils.addPrivilege(adminSession, newWorkgroup.getPath(), dn.toString(), Privilege.JCR_ALL);
+                       JcrUtils.addPrivilege(adminSession, newWorkgroup.getPath(), dn.toString(), Privilege.JCR_READ);
                        adminSession.save();
                } catch (RepositoryException e) {
                        throw new CmsException("Cannot create workgroup", e);