diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-record-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-record-context.xml index 032486de79..9b9f1d3725 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-record-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-record-context.xml @@ -107,14 +107,17 @@ - + - + + - + + + - + + + + + + + + + + + + + + @@ -242,13 +259,14 @@ - + + - + diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/capability-service.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/capability-service.properties index 516802817e..38f3346254 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/capability-service.properties +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/capability-service.properties @@ -5,8 +5,9 @@ capability.ViewRecords.title=View Records capability.UndeclareRecords.title=Reopen Records capability.CreateRecords.title=Create Records capability.RequestRecordInformation.title=Request Record Information -capability.RejectRecords=Reject Records -capability.FileUnfiledRecords=File Unfiled Records +capability.RejectRecords.title=Reject Records +capability.FileUnfiledRecords.title=File Unfiled Records +capability.LinkToRecords.title=Link Records # Metadata Control capability.group.metadataControl.title=Metadata Control diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsPermissionModel.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsPermissionModel.xml index 4a6c1d9625..1f8807b4ce 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsPermissionModel.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsPermissionModel.xml @@ -86,6 +86,7 @@ + @@ -164,6 +165,7 @@ + @@ -433,6 +435,10 @@ + + + + \ No newline at end of file diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/security/rm-default-roles-bootstrap.json b/rm-server/config/alfresco/module/org_alfresco_module_rm/security/rm-default-roles-bootstrap.json index 3ee7b4a81b..1b35b40b58 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/security/rm-default-roles-bootstrap.json +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/security/rm-default-roles-bootstrap.json @@ -48,7 +48,8 @@ "PlanningReviewCycles", "RequestRecordInformation", "FileUnfiledRecords", - "RejectRecords" + "RejectRecords", + "LinkToRecords" ] }, { @@ -71,7 +72,8 @@ "PlanningReviewCycles", "RequestRecordInformation", "FileUnfiledRecords", - "RejectRecords" + "RejectRecords", + "LinkToRecords" ] }, { @@ -134,7 +136,8 @@ "RequestRecordInformation", "FileDestructionReport", "FileUnfiledRecords", - "RejectRecords" + "RejectRecords", + "LinkToRecords" ] }, { @@ -199,7 +202,8 @@ "RequestRecordInformation", "FileDestructionReport", "FileUnfiledRecords", - "RejectRecords" + "RejectRecords", + "LinkToRecords" ] } ] diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordCopyBehaviours.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordCopyBehaviours.java index e5225e5011..359871e21d 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordCopyBehaviours.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordCopyBehaviours.java @@ -370,12 +370,20 @@ public class RecordCopyBehaviours implements RecordsManagementModel final NodeService nodeService = rmServiceRegistry.getNodeService(); //Generate the id for the copy - String id = rmIdentifierService.generateIdentifier(nodeService.getType(nodeService.getPrimaryParent(targetNodeRef).getParentRef()), (nodeService.getPrimaryParent(targetNodeRef).getParentRef())); + String id = rmIdentifierService.generateIdentifier( + nodeService.getType(nodeService.getPrimaryParent(targetNodeRef).getParentRef()), + (nodeService.getPrimaryParent(targetNodeRef).getParentRef())); //We need to allow the id to be overwritten disable the policy protecting changes to the id - behaviourFilter.disableBehaviour(targetNodeRef, ASPECT_RECORD_COMPONENT_ID); - nodeService.setProperty(targetNodeRef, PROP_IDENTIFIER, id); - behaviourFilter.enableBehaviour(targetNodeRef, ASPECT_RECORD_COMPONENT_ID); + behaviourFilter.disableBehaviour(); + try + { + nodeService.setProperty(targetNodeRef, PROP_IDENTIFIER, id); + } + finally + { + behaviourFilter.enableBehaviour(); + } } /** diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21CapabilityPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21CapabilityPatch.java index b6623e798d..100a458ffe 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21CapabilityPatch.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv21CapabilityPatch.java @@ -129,8 +129,14 @@ public class RMv21CapabilityPatch extends ModulePatchComponent FilePlanRoleService.ROLE_ADMIN, FilePlanRoleService.ROLE_POWER_USER, FilePlanRoleService.ROLE_RECORDS_MANAGER, - FilePlanRoleService.ROLE_SECURITY_OFFICER); - } + FilePlanRoleService.ROLE_SECURITY_OFFICER); + addCapability(filePlan, + "LinkToRecords", + FilePlanRoleService.ROLE_ADMIN, + FilePlanRoleService.ROLE_POWER_USER, + FilePlanRoleService.ROLE_RECORDS_MANAGER, + FilePlanRoleService.ROLE_SECURITY_OFFICER); +} } /**