From 41002b0ff1a6364388b2c70b28598e4f4beab2a2 Mon Sep 17 00:00:00 2001 From: Andrew Hind Date: Wed, 31 Jan 2007 20:05:18 +0000 Subject: [PATCH] Remove user homes patch - find in the UI or fall back to company home. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4989 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../messages/patch-service.properties | 4 - .../alfresco/patch/patch-services-context.xml | 14 -- .../patch/impl/UserHomesFolderPatch.java | 217 ------------------ 3 files changed, 235 deletions(-) delete mode 100644 source/java/org/alfresco/repo/admin/patch/impl/UserHomesFolderPatch.java diff --git a/config/alfresco/messages/patch-service.properties b/config/alfresco/messages/patch-service.properties index d23c91170f..36ad021903 100644 --- a/config/alfresco/messages/patch-service.properties +++ b/config/alfresco/messages/patch-service.properties @@ -114,10 +114,6 @@ patch.systemDescriptorContent.err.no_descriptor=The system descriptor could not patch.multilingualBootstrap.description=Bootstraps the node that will hold the multilingual containers. -patch.userHomesFolder.description=Ensures the existence of the 'User Homes' folder. -patch.userHomesFolder.result.exists=The user homes folder already exists: {0} -patch.userHomesFolder.result.created=The user homes folder was successfully created: {0} - patch.wcmFolders.description=Ensures the existance of the WCM specific 'Web Projects' and 'Web Forms' folders. patch.wcmFolders.webprojects.result.exists=The Web Projects folder already exists: {0} patch.wcmFolders.webprojects.result.created=The Web Projects folder was successfully created: {0} diff --git a/config/alfresco/patch/patch-services-context.xml b/config/alfresco/patch/patch-services-context.xml index 0f678cb28c..937e8cfb2a 100644 --- a/config/alfresco/patch/patch-services-context.xml +++ b/config/alfresco/patch/patch-services-context.xml @@ -537,20 +537,6 @@ - - patch.userHomesFolder - patch.userHomesFolder.description - 0 - 30 - 31 - - - - - - - - patch.wcmFolders diff --git a/source/java/org/alfresco/repo/admin/patch/impl/UserHomesFolderPatch.java b/source/java/org/alfresco/repo/admin/patch/impl/UserHomesFolderPatch.java deleted file mode 100644 index 8f01ef0d70..0000000000 --- a/source/java/org/alfresco/repo/admin/patch/impl/UserHomesFolderPatch.java +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright (C) 2005 Alfresco, Inc. - * - * Licensed under the Mozilla Public License version 1.1 - * with a permitted attribution clause. You may obtain a - * copy of the License at - * - * http://www.alfresco.org/legal/license.txt - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific - * language governing permissions and limitations under the - * License. - */ -package org.alfresco.repo.admin.patch.impl; - -import java.io.Serializable; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; - -import org.alfresco.i18n.I18NUtil; -import org.alfresco.model.ApplicationModel; -import org.alfresco.model.ContentModel; -import org.alfresco.repo.admin.patch.AbstractPatch; -import org.alfresco.repo.importer.ImporterBootstrap; -import org.alfresco.service.cmr.admin.PatchException; -import org.alfresco.service.cmr.repository.ChildAssociationRef; -import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.cmr.repository.StoreRef; -import org.alfresco.service.namespace.QName; -import org.springframework.context.MessageSource; - -/** - * Ensures that the User Homes folder is present beneath company home. - * It inherits permissions from company home. - *

- * This uses the bootstrap importer to get the paths to look for. If not present, - * the required structures are created. - *

- * - * @author Andy Hind - */ -public class UserHomesFolderPatch extends AbstractPatch -{ - private static final String MSG_EXISTS = "patch.userHomesFolder.result.exists"; - private static final String MSG_CREATED = "patch.userHomesFolder.result.created"; - - public static final String PROPERTY_COMPANY_HOME_CHILDNAME = "spaces.company_home.childname"; - public static final String PROPERTY_USER_HOMES_FOLDER_CHILDNAME = "spaces.user_homes.childname"; - private static final String PROPERTY_USER_HOMES_FOLDER_NAME = "spaces.user_homes.name"; - private static final String PROPERTY_USER_HOMES_FOLDER_DESCRIPTION = "spaces.user_homes.description"; - private static final String PROPERTY_ICON = "space-icon-default"; - - private ImporterBootstrap importerBootstrap; - private MessageSource messageSource; - - protected NodeRef companyHomeNodeRef; - protected Properties configuration; - protected NodeRef userHomesFolderNodeRef; - - public void setImporterBootstrap(ImporterBootstrap importerBootstrap) - { - this.importerBootstrap = importerBootstrap; - } - - public void setMessageSource(MessageSource messageSource) - { - this.messageSource = messageSource; - } - - /** - * Extracts pertinent references and properties that are common to execution - * of this and derived patches. - */ - protected void setUp() throws Exception - { - // get the node store that we must work against - StoreRef storeRef = importerBootstrap.getStoreRef(); - if (storeRef == null) - { - throw new PatchException("Bootstrap store has not been set"); - } - NodeRef storeRootNodeRef = nodeService.getRootNode(storeRef); - - this.configuration = importerBootstrap.getConfiguration(); - // get the association names that form the path - String companyHomeChildName = configuration.getProperty(PROPERTY_COMPANY_HOME_CHILDNAME); - if (companyHomeChildName == null || companyHomeChildName.length() == 0) - { - throw new PatchException("Bootstrap property '" + PROPERTY_COMPANY_HOME_CHILDNAME + "' is not present"); - } - - String userHomesChildName = configuration.getProperty(PROPERTY_USER_HOMES_FOLDER_CHILDNAME); - if (userHomesChildName == null || userHomesChildName.length() == 0) - { - throw new PatchException("Bootstrap property '" + PROPERTY_USER_HOMES_FOLDER_CHILDNAME + "' is not present"); - } - - // build the search string to get the company home node - StringBuilder sb = new StringBuilder(512); - sb.append("/").append(companyHomeChildName); - String xpath = sb.toString(); - // get the company home - List nodeRefs = searchService.selectNodes(storeRootNodeRef, xpath, null, namespaceService, false); - if (nodeRefs.size() == 0) - { - throw new PatchException("XPath didn't return any results: \n" + - " root: " + storeRootNodeRef + "\n" + - " xpath: " + xpath); - } - else if (nodeRefs.size() > 1) - { - throw new PatchException("XPath returned too many results: \n" + - " root: " + storeRootNodeRef + "\n" + - " xpath: " + xpath + "\n" + - " results: " + nodeRefs); - } - this.companyHomeNodeRef = nodeRefs.get(0); - - // Now we have the optional part. Check for the existence of the user homes folder - xpath = userHomesChildName; - nodeRefs = searchService.selectNodes(companyHomeNodeRef, xpath, null, namespaceService, false); - if (nodeRefs.size() > 1) - { - throw new PatchException("XPath returned too many results: \n" + - " company home node: " + companyHomeNodeRef + "\n" + - " xpath: " + xpath + "\n" + - " results: " + nodeRefs); - } - else if (nodeRefs.size() == 0) - { - // the node does not exist - this.userHomesFolderNodeRef = null; - } - else - { - // we have the user homes folder noderef - this.userHomesFolderNodeRef = nodeRefs.get(0); - } - } - - @Override - protected String applyInternal() throws Exception - { - // properties must be set - super.checkPropertyNotNull(importerBootstrap, "importerBootstrap"); - super.checkPropertyNotNull(messageSource, "messageSource"); - - // get useful values - setUp(); - - String msg = null; - if (userHomesFolderNodeRef == null) - { - // create it - createFolder(); - msg = I18NUtil.getMessage(MSG_CREATED, userHomesFolderNodeRef); - } - else - { - // it already exists - msg = I18NUtil.getMessage(MSG_EXISTS, userHomesFolderNodeRef); - } - // done - return msg; - } - - private void createFolder() - { - // get required properties - String userHomesChildName = configuration.getProperty(PROPERTY_USER_HOMES_FOLDER_CHILDNAME); - if (userHomesChildName == null) - { - throw new PatchException("Bootstrap property '" + PROPERTY_USER_HOMES_FOLDER_CHILDNAME + "' is not present"); - } - - String userHomesName = messageSource.getMessage( - PROPERTY_USER_HOMES_FOLDER_NAME, - null, - I18NUtil.getLocale()); - if (userHomesName == null || userHomesName.length() == 0) - { - throw new PatchException("Bootstrap property '" + PROPERTY_USER_HOMES_FOLDER_NAME + "' is not present"); - } - - String userHomesDescription = messageSource.getMessage( - PROPERTY_USER_HOMES_FOLDER_DESCRIPTION, - null, - I18NUtil.getLocale()); - if (userHomesDescription == null || userHomesDescription.length() == 0) - { - throw new PatchException("Bootstrap property '" + PROPERTY_USER_HOMES_FOLDER_DESCRIPTION + "' is not present"); - } - - Map properties = new HashMap(7); - properties.put(ContentModel.PROP_NAME, userHomesName); - properties.put(ContentModel.PROP_TITLE, userHomesName); - properties.put(ContentModel.PROP_DESCRIPTION, userHomesDescription); - properties.put(ApplicationModel.PROP_ICON, PROPERTY_ICON); - // create the node - ChildAssociationRef childAssocRef = nodeService.createNode( - companyHomeNodeRef, - ContentModel.ASSOC_CONTAINS, - QName.resolveToQName(namespaceService, userHomesChildName), - ContentModel.TYPE_FOLDER, - properties); - userHomesFolderNodeRef = childAssocRef.getChildRef(); - // add the required aspects - nodeService.addAspect(userHomesFolderNodeRef, ApplicationModel.ASPECT_UIFACETS, null); - - // done - } -}