X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=org.argeo.suite.web%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fpeople%2FPeopleSuiteServiceImpl.java;fp=org.argeo.suite.web%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fpeople%2FPeopleSuiteServiceImpl.java;h=0000000000000000000000000000000000000000;hp=27efb4d19eb50f87d5d64b97975dde96be70e15c;hb=f2bf1e12e3aad9c2507e86e1d33fef2fd3e67489;hpb=1fb1ccc2edbf7cfbdd37efc618c52b8eebe4e6be diff --git a/org.argeo.suite.web/src/org/argeo/suite/people/PeopleSuiteServiceImpl.java b/org.argeo.suite.web/src/org/argeo/suite/people/PeopleSuiteServiceImpl.java deleted file mode 100644 index 27efb4d..0000000 --- a/org.argeo.suite.web/src/org/argeo/suite/people/PeopleSuiteServiceImpl.java +++ /dev/null @@ -1,143 +0,0 @@ -package org.argeo.suite.people; - -import javax.jcr.Repository; -import javax.jcr.RepositoryException; -import javax.jcr.Session; -import javax.jcr.nodetype.NodeType; -import javax.jcr.security.Privilege; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.argeo.connect.people.PeopleConstants; -import org.argeo.connect.people.PeopleNames; -import org.argeo.connect.people.PeopleService; -import org.argeo.connect.people.PeopleTypes; -import org.argeo.connect.people.ResourceService; -import org.argeo.connect.people.core.PeopleServiceImpl; -import org.argeo.jcr.JcrUtils; -import org.argeo.node.NodeConstants; -import org.argeo.suite.SuiteException; - -/** Default implementation of an Argeo Suite specific People Backend */ -public class PeopleSuiteServiceImpl extends PeopleServiceImpl implements PeopleService, PeopleConstants { - private final static Log log = LogFactory.getLog(PeopleSuiteServiceImpl.class); - - /* DEPENDENCY INJECTION */ - private Repository repository; - private String workspaceName; - // private UserAdminService userAdminService; - - public void init() { - super.init(); - Session adminSession = null; - try { - adminSession = repository.login(workspaceName); - initialiseModel(adminSession); - } catch (Exception e) { - throw new SuiteException("Cannot initialise model", e); - } finally { - JcrUtils.logoutQuietly(adminSession); - } - } - - // HELPERS - - // TODO Hard-coded creation of default public and shared file directories - // To be cleaned once first init and configuration mechanisms have been - // implemented - private final static String publicPath = "/public"; - private final static String sharedFilePath = "/sharedFiles"; - - @Override - protected void initialiseModel(Session adminSession) throws RepositoryException { - super.initialiseModel(adminSession); - - JcrUtils.mkdirs(adminSession, publicPath, NodeType.NT_UNSTRUCTURED); - JcrUtils.mkdirs(adminSession, sharedFilePath, NodeType.NT_FOLDER); - initModelResources(adminSession); - if (adminSession.hasPendingChanges()) { - adminSession.save(); - log.info("Repository has been initialized " + "with People's model"); - configureACL(adminSession); - } - } - - // First draft of configuration of the people specific rights - private void configureACL(Session session) throws RepositoryException { - String memberGroupDn = "cn=" + PeopleConstants.ROLE_MEMBER + ",ou=roles,ou=node"; - JcrUtils.addPrivilege(session, getBasePath(null), memberGroupDn, Privilege.JCR_ALL); - JcrUtils.addPrivilege(session, "/", NodeConstants.ROLE_ADMIN, Privilege.JCR_ALL); - JcrUtils.addPrivilege(session, publicPath, NodeConstants.ROLE_USER, Privilege.JCR_READ); - JcrUtils.addPrivilege(session, publicPath, "anonymous", Privilege.JCR_READ); - JcrUtils.addPrivilege(session, publicPath, NodeConstants.ROLE_ANONYMOUS, Privilege.JCR_READ); - JcrUtils.addPrivilege(session, sharedFilePath, NodeConstants.ROLE_USER, Privilege.JCR_ALL); - session.save(); - log.info("Access control configured"); - } - - /** - * Initialises People resource model and optionally imports legacy resources - */ - protected void initModelResources(Session adminSession) throws RepositoryException { - // initialisation - ResourceService resourceService = getResourceService(); - resourceService.initialiseResources(adminSession); - - // Resource resource = initResources.get("Countries"); - // if (resourceService.getTagLikeResourceParent(adminSession, - // PeopleConstants.RESOURCE_COUNTRY) == null - // && resource != null) { - // resourceService.createTagLikeResourceParent(adminSession, - // PeopleConstants.RESOURCE_COUNTRY, - // PeopleTypes.PEOPLE_TAG_ENCODED_INSTANCE, PeopleNames.PEOPLE_CODE, - // getBasePath(null), - // JcrUiUtils.getLocalJcrItemName(NodeType.NT_UNSTRUCTURED), new - // ArrayList()); - // String EN_SHORT_NAME = "English short name (upper-lower case)"; - // String ISO_CODE = "Alpha-2 code"; - // new EncodedTagCsvFileParser(resourceService, adminSession, - // PeopleConstants.RESOURCE_COUNTRY, ISO_CODE, - // EN_SHORT_NAME).parse(resource.getInputStream(), "UTF-8"); - // } - // - // resource = initResources.get("Languages"); - // if (resourceService.getTagLikeResourceParent(adminSession, - // PeopleConstants.RESOURCE_LANG) == null - // && resource != null) { - // resourceService.createTagLikeResourceParent(adminSession, - // PeopleConstants.RESOURCE_LANG, - // PeopleTypes.PEOPLE_TAG_ENCODED_INSTANCE, PeopleNames.PEOPLE_CODE, - // getBasePath(null), - // JcrUiUtils.getLocalJcrItemName(NodeType.NT_UNSTRUCTURED), new - // ArrayList()); - // String EN_SHORT_NAME = "Language name"; - // String ISO_CODE = "639-1"; - // new EncodedTagCsvFileParser(resourceService, adminSession, - // PeopleConstants.RESOURCE_LANG, ISO_CODE, - // EN_SHORT_NAME).parse(resource.getInputStream(), "UTF-8"); - // } - - // Create tag & mailing list parents - if (resourceService.getTagLikeResourceParent(adminSession, PeopleConstants.RESOURCE_TAG) == null) - resourceService.createTagLikeResourceParent(adminSession, PeopleConstants.RESOURCE_TAG, - PeopleTypes.PEOPLE_TAG_INSTANCE, null, getBasePath(null), PeopleTypes.PEOPLE_ENTITY, - PeopleNames.PEOPLE_TAGS); - if (resourceService.getTagLikeResourceParent(adminSession, PeopleTypes.PEOPLE_MAILING_LIST) == null) - resourceService.createTagLikeResourceParent(adminSession, null, PeopleTypes.PEOPLE_MAILING_LIST, null, - getBasePath(null), PeopleTypes.PEOPLE_ENTITY, PeopleNames.PEOPLE_MAILING_LISTS); - - if (adminSession.hasPendingChanges()) { - adminSession.save(); - log.info("Resources have been added to People's model"); - } - } - - /* DEPENDENCY INJECTION */ - public void setRepository(Repository repository) { - this.repository = repository; - } - - public void setWorkspaceName(String workspaceName) { - this.workspaceName = workspaceName; - } -}