diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/log4j.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/log4j.properties index bc4d3493e5..b5bdc8f089 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/log4j.properties +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/log4j.properties @@ -18,4 +18,4 @@ log4j.logger.org.alfresco.module.org_alfresco_module_rm.patch=info #log4j.logger.org.alfresco.module.org_alfresco_module_rm.record.RecordServiceImpl=debug #log4j.logger.org.springframework.extensions.webscripts.ScriptDebugger=on -log4j.logger.org.alfresco.module.org_alfresco_module_rm.audit.RecordsManagementAuditService=debug \ No newline at end of file +#log4j.logger.org.alfresco.module.org_alfresco_module_rm.audit.RecordsManagementAuditService=debug \ No newline at end of file diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/BroadcastVitalRecordDefinitionAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/BroadcastVitalRecordDefinitionAction.java index b07284824c..1658660045 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/BroadcastVitalRecordDefinitionAction.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/BroadcastVitalRecordDefinitionAction.java @@ -28,6 +28,7 @@ import org.alfresco.module.org_alfresco_module_rm.action.RMActionExecuterAbstrac import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; import org.alfresco.module.org_alfresco_module_rm.security.FilePlanAuthenticationService; +import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; import org.alfresco.service.cmr.action.Action; import org.alfresco.service.cmr.repository.ChildAssociationRef; @@ -67,7 +68,7 @@ public class BroadcastVitalRecordDefinitionAction extends RMActionExecuterAbstra @Override protected void executeImpl(Action action, final NodeRef actionedUponNodeRef) { - filePlanAuthenticationService.runAsRmAdmin(new RunAsWork() + AuthenticationUtil.runAs(new RunAsWork() { @Override public Void doWork() throws Exception @@ -75,7 +76,7 @@ public class BroadcastVitalRecordDefinitionAction extends RMActionExecuterAbstra propagateChangeToChildrenOf(actionedUponNodeRef); return null; } - }); + }, AuthenticationUtil.getAdminUserName()); } /** @@ -102,10 +103,11 @@ public class BroadcastVitalRecordDefinitionAction extends RMActionExecuterAbstra { NodeRef nextChild = nextAssoc.getChildRef(); - if (filePlanService.isFilePlanComponent(nextChild) == true) + if (filePlanService.isFilePlanComponent(nextChild) == true && + freezeService.isFrozen(nextChild) == false) { // If the child is a record, then the VitalRecord aspect needs to be applied or updated - if (recordService.isRecord(nextChild)) + if (recordService.isRecord(nextChild) == true) { if (parentVri) { diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordServiceImpl.java index a58360e390..265951227e 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordServiceImpl.java @@ -31,9 +31,9 @@ import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; import org.alfresco.module.org_alfresco_module_rm.security.FilePlanAuthenticationService; 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.service.cmr.repository.ChildAssociationRef; @@ -42,6 +42,7 @@ import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.Period; import org.alfresco.service.namespace.QName; import org.alfresco.util.ParameterCheck; +import org.alfresco.util.PropertyMap; /** * Vital record service interface implementation. @@ -141,17 +142,24 @@ public class VitalRecordServiceImpl implements VitalRecordService, @Override public void onUpdateProperties(final NodeRef nodeRef, Map before, Map after) { - if (nodeService.exists(nodeRef) == true && nodeService.hasAspect(nodeRef, ASPECT_FILE_PLAN_COMPONENT) == true) + if (nodeService.exists(nodeRef) == true && + nodeService.hasAspect(nodeRef, ASPECT_FILE_PLAN_COMPONENT) == true) { - filePlanAuthenticationService.runAsRmAdmin(new RunAsWork() + // check that vital record definition has been changed in the first place + Map changedProps = PropertyMap.getChangedProperties(before, after); + if (changedProps.containsKey(PROP_VITAL_RECORD_INDICATOR) == true || + changedProps.containsKey(PROP_REVIEW_PERIOD) == true) { - @Override - public Void doWork() throws Exception + filePlanAuthenticationService.runAsRmAdmin(new RunAsWork() { - rmActionService.executeRecordsManagementAction(nodeRef, "broadcastVitalRecordDefinition"); - return null; - }} - ); + @Override + public Void doWork() throws Exception + { + rmActionService.executeRecordsManagementAction(nodeRef, "broadcastVitalRecordDefinition"); + return null; + }} + ); + } } }