From e014b16b01795ca1ace7538a556fe19bd026a387 Mon Sep 17 00:00:00 2001 From: Tuna Aksoy Date: Mon, 19 May 2014 13:23:12 +0000 Subject: [PATCH] RM-1506 (Deleting In-Place Reader or Writer roles breaks Record declaration) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@70987 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../role/FilePlanRoleServiceImpl.java | 6 ++++++ .../org_alfresco_module_rm/script/admin/RmRoleDelete.java | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/role/FilePlanRoleServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/role/FilePlanRoleServiceImpl.java index 7fc5036ea7..db18ee0269 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/role/FilePlanRoleServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/role/FilePlanRoleServiceImpl.java @@ -784,6 +784,12 @@ public class FilePlanRoleServiceImpl implements FilePlanRoleService, throw new AlfrescoRuntimeException("Can not delete the records management administration role."); } + // ensure that we are not trying to delete a system role + if (FilePlanRoleService.SYSTEM_ROLES.contains(role)) + { + throw new AlfrescoRuntimeException("'" + role + "' is a system role and cannot be deleted."); + } + AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork() { public Boolean doWork() throws Exception diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmRoleDelete.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmRoleDelete.java index 6c66bfec70..783776454d 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmRoleDelete.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmRoleDelete.java @@ -22,6 +22,7 @@ import java.util.HashMap; import java.util.Map; import org.alfresco.service.cmr.repository.NodeRef; +import org.apache.commons.lang.StringUtils; import org.springframework.extensions.webscripts.Cache; import org.springframework.extensions.webscripts.Status; import org.springframework.extensions.webscripts.WebScriptException; @@ -45,7 +46,7 @@ public class RmRoleDelete extends RoleDeclarativeWebScript // Role name Map templateVars = req.getServiceMatch().getTemplateVars(); String roleParam = templateVars.get("rolename"); - if (roleParam == null) + if (StringUtils.isBlank(roleParam)) { throw new WebScriptException(Status.STATUS_NOT_FOUND, "No role name was provided on the URL."); }