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
{