diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml
index d1d7ea5699..0ae8c884fa 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml
@@ -16,7 +16,6 @@
- FILE_PLAN
RECORD_CATEGORY
RECORD_FOLDER
RECORD
@@ -61,27 +60,31 @@
parent="action-condition-evaluator"
abstract="true"
class="org.alfresco.module.org_alfresco_module_rm.action.evaluator.CapabilityConditionEvaluator">
-
+
+
-
+
+
-
+
+
-
+
+
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/RecordsManagementActionConditionEvaluatorAbstractBase.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/RecordsManagementActionConditionEvaluatorAbstractBase.java
index 0e66280617..42dcab9595 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/RecordsManagementActionConditionEvaluatorAbstractBase.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/RecordsManagementActionConditionEvaluatorAbstractBase.java
@@ -21,6 +21,10 @@ package org.alfresco.module.org_alfresco_module_rm.action;
import java.util.List;
import org.alfresco.repo.action.evaluator.ActionConditionEvaluatorAbstractBase;
+import org.alfresco.repo.security.authentication.AuthenticationUtil;
+import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
+import org.alfresco.repo.transaction.RetryingTransactionHelper;
+import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.cmr.action.ActionConditionDefinition;
import org.alfresco.service.cmr.action.ParameterDefinition;
import org.springframework.beans.factory.BeanNameAware;
@@ -44,6 +48,8 @@ public abstract class RecordsManagementActionConditionEvaluatorAbstractBase exte
/** public condition */
protected boolean publicCondition = true;
+ private RetryingTransactionHelper retryingTransactionHelper;
+
/**
* @param recordsManagementActionService records management action service
*/
@@ -51,7 +57,15 @@ public abstract class RecordsManagementActionConditionEvaluatorAbstractBase exte
{
this.recordsManagementActionService = recordsManagementActionService;
}
-
+
+ /**
+ * @param retryingTransactionHelper
+ */
+ public void setRetryingTransactionHelper(RetryingTransactionHelper retryingTransactionHelper)
+ {
+ this.retryingTransactionHelper = retryingTransactionHelper;
+ }
+
/**
* @see org.alfresco.repo.action.evaluator.ActionConditionEvaluatorAbstractBase#init()
*/
@@ -59,7 +73,27 @@ public abstract class RecordsManagementActionConditionEvaluatorAbstractBase exte
public void init()
{
// override to prevent condition being registered with the core action service
- recordsManagementActionService.register(this);
+
+ // run the following code as System
+ AuthenticationUtil.runAs(new RunAsWork