diff --git a/config/alfresco/bootstrap/system.xml b/config/alfresco/bootstrap/system.xml index 83b59d469a..a868e910c7 100644 --- a/config/alfresco/bootstrap/system.xml +++ b/config/alfresco/bootstrap/system.xml @@ -27,7 +27,7 @@ - + guest Read diff --git a/config/alfresco/messages/patch-service.properties b/config/alfresco/messages/patch-service.properties index 1370e1cccb..98957f5d22 100644 --- a/config/alfresco/messages/patch-service.properties +++ b/config/alfresco/messages/patch-service.properties @@ -85,3 +85,6 @@ patch.rssTemplatesFolder.result.created=The RSS Templates folder was successfull patch.uifacetsAspectRemovalPatch.description=Removes the incorrectly applied uifacets aspect from presentation template files. patch.uifacetsAspectRemovalPatch.updated=Successfully removed the uifacets aspect from {0} presentation template files. + +patch.guestPersonPermission2.description=Change Guest Person permission to visible by all users as 'Consumer'. +patch.guestPersonPermission2.result=Updated Guest Person permission to visible by all users as 'Consumer'. diff --git a/config/alfresco/patch/patch-services-context.xml b/config/alfresco/patch/patch-services-context.xml index 17c6e55e8a..bb8bb5a94c 100644 --- a/config/alfresco/patch/patch-services-context.xml +++ b/config/alfresco/patch/patch-services-context.xml @@ -425,4 +425,19 @@ + + patch.guestPersonPermission2 + patch.guestPersonPermission2.description + 0 + 18 + 19 + + + + + + + + + diff --git a/config/alfresco/version.properties b/config/alfresco/version.properties index 5c1e85dead..bc9019c376 100644 --- a/config/alfresco/version.properties +++ b/config/alfresco/version.properties @@ -19,4 +19,4 @@ version.build=@build-number@ # Schema number -version.schema=18 +version.schema=19 diff --git a/source/java/org/alfresco/repo/admin/patch/impl/GuestPersonPermissionPatch2.java b/source/java/org/alfresco/repo/admin/patch/impl/GuestPersonPermissionPatch2.java new file mode 100644 index 0000000000..64892ea29c --- /dev/null +++ b/source/java/org/alfresco/repo/admin/patch/impl/GuestPersonPermissionPatch2.java @@ -0,0 +1,72 @@ +/* + * 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 org.alfresco.i18n.I18NUtil; +import org.alfresco.repo.admin.patch.AbstractPatch; +import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.cmr.security.PermissionService; +import org.alfresco.service.cmr.security.PersonService; + +/** + * Change Guest Person permission to make visible to all users as 'Consumer'. + * + * This allows users other than admin to select the Guest user for Invite to a Space. + */ +public class GuestPersonPermissionPatch2 extends AbstractPatch +{ + private static final String MSG_SUCCESS = "patch.guestPersonPermission2.result"; + + private PersonService personService; + + private PermissionService permissionService; + + private String guestId = "guest"; + + public GuestPersonPermissionPatch2() + { + super(); + } + + public void setGuestId(String guestId) + { + this.guestId = guestId; + } + + public void setPermissionService(PermissionService permissionService) + { + this.permissionService = permissionService; + } + + public void setPersonService(PersonService personService) + { + this.personService = personService; + } + + @Override + protected String applyInternal() throws Exception + { + if (personService.personExists(guestId)) + { + NodeRef personRef = personService.getPerson(guestId); + permissionService.setInheritParentPermissions(personRef, true); + } + + return I18NUtil.getMessage(MSG_SUCCESS); + } + +}