diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml index f24fcadd17..1a2d5b7f2a 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml @@ -125,6 +125,7 @@ + diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordsManagementSearchBehaviour.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordsManagementSearchBehaviour.java index 2905f8eb86..846c7577c9 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordsManagementSearchBehaviour.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordsManagementSearchBehaviour.java @@ -323,7 +323,7 @@ public class RecordsManagementSearchBehaviour implements RecordsManagementModel @Override public Void doWork() throws Exception { - if (nodeService.exists(nodeRef) == true) + if (nodeService.exists(nodeRef) == true && nodeService.hasAspect(nodeRef, ASPECT_RECORD) == true) { applySearchAspect(nodeRef); setupDispositionScheduleProperties(nodeRef); 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 3160834377..224f242b99 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 @@ -28,6 +28,7 @@ import org.alfresco.module.org_alfresco_module_rm.FilePlanComponentKind; import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService; import org.alfresco.module.org_alfresco_module_rm.action.RecordsManagementActionService; 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.JavaBehaviour; import org.alfresco.repo.policy.PolicyComponent; @@ -57,6 +58,7 @@ public class VitalRecordServiceImpl implements VitalRecordService, private PolicyComponent policyComponent; private RecordsManagementService rmService; private RecordsManagementActionService rmActionService; + private FilePlanAuthenticationService filePlanAuthenticationService; /** Behaviours */ private JavaBehaviour onUpdateProperties; @@ -94,6 +96,11 @@ public class VitalRecordServiceImpl implements VitalRecordService, this.rmActionService = rmActionService; } + public void setFilePlanAuthenticationService(FilePlanAuthenticationService filePlanAuthenticationService) + { + this.filePlanAuthenticationService = filePlanAuthenticationService; + } + /** * Init method. */ @@ -122,11 +129,19 @@ public class VitalRecordServiceImpl implements VitalRecordService, * @see org.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy#onUpdateProperties(org.alfresco.service.cmr.repository.NodeRef, java.util.Map, java.util.Map) */ @Override - public void onUpdateProperties(NodeRef nodeRef, Map before, Map after) + public void onUpdateProperties(final NodeRef nodeRef, Map before, Map after) { - if (nodeService.exists(nodeRef) == true) + if (nodeService.exists(nodeRef) == true && nodeService.hasAspect(nodeRef, ASPECT_FILE_PLAN_COMPONENT) == true) { - rmActionService.executeRecordsManagementAction(nodeRef, "broadcastVitalRecordDefinition"); + filePlanAuthenticationService.runAsRmAdmin(new RunAsWork() + { + @Override + public Void doWork() throws Exception + { + rmActionService.executeRecordsManagementAction(nodeRef, "broadcastVitalRecordDefinition"); + return null; + }} + ); } } diff --git a/rm-server/source/java/org/alfresco/repo/action/parameter/NodeParameterProcessor.java b/rm-server/source/java/org/alfresco/repo/action/parameter/NodeParameterProcessor.java index ef6ef517a8..982e2d769d 100644 --- a/rm-server/source/java/org/alfresco/repo/action/parameter/NodeParameterProcessor.java +++ b/rm-server/source/java/org/alfresco/repo/action/parameter/NodeParameterProcessor.java @@ -24,6 +24,7 @@ import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.dictionary.PropertyDefinition; +import org.alfresco.service.cmr.repository.MLText; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.namespace.NamespaceService; @@ -47,7 +48,8 @@ public class NodeParameterProcessor extends ParameterProcessor DataTypeDefinition.DATETIME, DataTypeDefinition.DOUBLE, DataTypeDefinition.FLOAT, - DataTypeDefinition.INT + DataTypeDefinition.INT, + DataTypeDefinition.MLTEXT }; /** Node service */ @@ -107,8 +109,8 @@ public class NodeParameterProcessor extends ParameterProcessor QName type = propertyDefinition.getDataType().getName(); if (ArrayUtils.contains(supportedDataTypes, type) == true) { - Serializable propertyValue = nodeService.getProperty(actionedUponNodeRef, qname); - result = propertyValue.toString(); + Serializable propertyValue = nodeService.getProperty(actionedUponNodeRef, qname); + result = propertyValue.toString(); } else {