diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/content/record-rejected-email.ftl b/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/content/record-rejected-email.ftl index 107b76b6c4..29bafa0511 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/content/record-rejected-email.ftl +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/content/record-rejected-email.ftl @@ -61,7 +61,7 @@ - + diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/notification/RecordsManagementNotificationHelper.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/notification/RecordsManagementNotificationHelper.java index b239d1ab80..e2ec49e806 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/notification/RecordsManagementNotificationHelper.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/notification/RecordsManagementNotificationHelper.java @@ -26,6 +26,7 @@ import java.util.Map; import java.util.Set; import org.alfresco.error.AlfrescoRuntimeException; +import org.alfresco.model.ContentModel; import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; import org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService; @@ -309,7 +310,7 @@ public class RecordsManagementNotificationHelper implements RecordsManagementMod * * @param record rejected record */ - public void recordRejectedEmailNotification(NodeRef record) + public void recordRejectedEmailNotification(NodeRef record, String recordId) { ParameterCheck.mandatory("record", record); @@ -320,14 +321,17 @@ public class RecordsManagementNotificationHelper implements RecordsManagementMod String rejectReason = (String) nodeService.getProperty(record, PROP_RECORD_REJECTION_REASON); String rejectedPerson = (String) nodeService.getProperty(record, PROP_RECORD_REJECTION_USER_ID); Date rejectDate = (Date) nodeService.getProperty(record, PROP_RECORD_REJECTION_DATE); + String recordName = (String) nodeService.getProperty(record, ContentModel.PROP_NAME); - Map args = new HashMap(6); + Map args = new HashMap(8); args.put("record", record); args.put("site", site); args.put("recordCreator", recordCreator); args.put("rejectReason", rejectReason); args.put("rejectedPerson", rejectedPerson); args.put("rejectDate", rejectDate); + args.put("recordId", recordId); + args.put("recordName", recordName); NotificationContext notificationContext = new NotificationContext(); notificationContext.setAsyncNotification(true); diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java index 673500bb27..6301ddd67a 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java @@ -21,7 +21,6 @@ package org.alfresco.module.org_alfresco_module_rm.record; import java.io.Serializable; import java.util.Calendar; import java.util.Collection; -import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -41,9 +40,9 @@ import org.alfresco.module.org_alfresco_module_rm.notification.RecordsManagement import org.alfresco.module.org_alfresco_module_rm.security.ExtendedSecurityService; import org.alfresco.module.org_alfresco_module_rm.vital.VitalRecordServiceImpl; import org.alfresco.repo.node.NodeServicePolicies; -import org.alfresco.repo.policy.Behaviour.NotificationFrequency; import org.alfresco.repo.policy.JavaBehaviour; import org.alfresco.repo.policy.PolicyComponent; +import org.alfresco.repo.policy.Behaviour.NotificationFrequency; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; import org.alfresco.repo.security.permissions.AccessDeniedException; @@ -368,8 +367,11 @@ public class RecordServiceImpl implements RecordService, nodeService.addChild(parentAssoc.getParentRef(), nodeRef, parentAssoc.getTypeQName(), parentAssoc.getQName()); // set the extended security - extendedSecurityService.addExtendedSecurity(nodeRef, readers, writers); - extendedSecurityService.addExtendedSecurity(nodeRef, null, Collections.singleton(owner)); + Set combinedWriters = new HashSet(writers); + combinedWriters.add(owner); + combinedWriters.add(AuthenticationUtil.getFullyAuthenticatedUser()); + + extendedSecurityService.addExtendedSecurity(nodeRef, readers, combinedWriters); } return null; @@ -521,6 +523,9 @@ public class RecordServiceImpl implements RecordService, @Override public Void doWork() throws Exception { + // take note of the record id + String recordId = (String)nodeService.getProperty(nodeRef, PROP_IDENTIFIER); + // first remove the secondary link association NodeRef originatingLocation = (NodeRef) nodeService.getProperty(nodeRef, PROP_RECORD_ORIGINATING_LOCATION); List parentAssocs = nodeService.getParentAssocs(nodeRef); @@ -565,7 +570,7 @@ public class RecordServiceImpl implements RecordService, ownableService.setOwner(nodeRef, documentOwner); // send an email to the record creator - notificationHelper.recordRejectedEmailNotification(nodeRef); + notificationHelper.recordRejectedEmailNotification(nodeRef, recordId); return null; }
${args.record.properties["rma:identifier"]!} ${args.record.name}${args.recordId} ${args.recordName}
Click on this link to view the record: