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."); }