mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
RM-967: Disposition actions appearing for records when disposition set to record folder
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@55374 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -40,7 +40,6 @@
|
||||
<entry key="capabilityCondition.cutoff" value="false"/>
|
||||
<entry key="capabilityCondition.frozen" value="false"/>
|
||||
<entry key="capabilityCondition.closed" value="false"/>
|
||||
<entry key="capabilityCondition.hasDispositionAsOfDate" value="false"/>
|
||||
</map>
|
||||
</property>
|
||||
<property name="group"><ref bean="folderControlGroup"/></property>
|
||||
@@ -81,5 +80,10 @@
|
||||
</list>
|
||||
</property>
|
||||
<property name="targetCapability" ref="rmCreateModifyDestroyFoldersCapability"/>
|
||||
<property name="conditions">
|
||||
<map>
|
||||
<entry key="capabilityCondition.isClassified" value="false"/>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</beans>
|
@@ -137,6 +137,7 @@
|
||||
<property name="freezeService" ref="freezeService"/>
|
||||
<property name="recordService" ref="recordService"/>
|
||||
<property name="parameterProcessorComponent" ref="parameterProcessorComponent"/>
|
||||
<property name="modelSecurityService" ref="modelSecurityService" />
|
||||
</bean>
|
||||
|
||||
<bean id="rmProxyAction"
|
||||
|
@@ -26,8 +26,8 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.admin.RecordsManagementAdminService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.admin.RecordsManagementAdminService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.audit.RecordsManagementAuditService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction;
|
||||
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionActionDefinition;
|
||||
@@ -40,6 +40,7 @@ import org.alfresco.module.org_alfresco_module_rm.event.RecordsManagementEventTy
|
||||
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanComponentKind;
|
||||
import org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.security.ModelSecurityService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.vital.VitalRecordService;
|
||||
import org.alfresco.repo.action.executer.ActionExecuterAbstractBase;
|
||||
@@ -121,6 +122,9 @@ public abstract class RMActionExecuterAbstractBase extends PropertySubActionExe
|
||||
/** Freeze Service */
|
||||
protected FreezeService freezeService;
|
||||
|
||||
/** model security service */
|
||||
protected ModelSecurityService modelSecurityService;
|
||||
|
||||
/** List of kinds for which this action is applicable */
|
||||
protected Set<FilePlanComponentKind> applicableKinds = new HashSet<FilePlanComponentKind>();
|
||||
|
||||
@@ -265,6 +269,14 @@ public abstract class RMActionExecuterAbstractBase extends PropertySubActionExe
|
||||
{
|
||||
return recordsManagementAdminService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param modelSecurityService model security service
|
||||
*/
|
||||
public void setModelSecurityService(ModelSecurityService modelSecurityService)
|
||||
{
|
||||
this.modelSecurityService = modelSecurityService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param applicableKinds kinds that this action is applicable for
|
||||
@@ -407,8 +419,17 @@ public abstract class RMActionExecuterAbstractBase extends PropertySubActionExe
|
||||
Action action = this.actionService.createAction(name);
|
||||
action.setParameterValues(parameters);
|
||||
|
||||
// Execute the action
|
||||
this.actionService.executeAction(action, filePlanComponent);
|
||||
// disable model security whilst we execute the RM rule
|
||||
modelSecurityService.disable();
|
||||
try
|
||||
{
|
||||
// Execute the action
|
||||
actionService.executeAction(action, filePlanComponent);
|
||||
}
|
||||
finally
|
||||
{
|
||||
modelSecurityService.enable();
|
||||
}
|
||||
|
||||
// Get the result
|
||||
Object value = action.getParameterValue(ActionExecuterAbstractBase.PARAM_RESULT);
|
||||
|
@@ -57,21 +57,9 @@ public class IsScheduledCapabilityCondition extends AbstractCapabilityCondition
|
||||
*/
|
||||
@Override
|
||||
public boolean evaluate(NodeRef nodeRef)
|
||||
{
|
||||
boolean result = evaluateImpl(nodeRef);
|
||||
|
||||
if (result == false && recordService.isRecord(nodeRef) == true)
|
||||
{
|
||||
result = evaluateImpl(nodeService.getPrimaryParent(nodeRef).getParentRef());
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public boolean evaluateImpl(NodeRef nodeRef)
|
||||
{
|
||||
boolean result = false;
|
||||
|
||||
|
||||
DispositionAction nextDispositionAction = dispositionService.getNextDispositionAction(nodeRef);
|
||||
if (nextDispositionAction != null)
|
||||
{
|
||||
@@ -83,7 +71,7 @@ public class IsScheduledCapabilityCondition extends AbstractCapabilityCondition
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@@ -49,18 +49,6 @@ public class LastDispositionActionCondition extends AbstractCapabilityCondition
|
||||
*/
|
||||
@Override
|
||||
public boolean evaluate(NodeRef nodeRef)
|
||||
{
|
||||
boolean result = evaluateImpl(nodeRef);
|
||||
|
||||
if (result == false && recordService.isRecord(nodeRef) == true)
|
||||
{
|
||||
result = evaluateImpl(nodeService.getPrimaryParent(nodeRef).getParentRef());
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean evaluateImpl(NodeRef nodeRef)
|
||||
{
|
||||
boolean result = false;
|
||||
DispositionAction dispositionAction = dispositionService.getLastCompletedDispostionAction(nodeRef);
|
||||
@@ -69,7 +57,6 @@ public class LastDispositionActionCondition extends AbstractCapabilityCondition
|
||||
{
|
||||
result = true;
|
||||
}
|
||||
return result;
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -23,7 +23,6 @@ import java.util.Set;
|
||||
|
||||
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.model.security.ModelSecurityService;
|
||||
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;
|
||||
@@ -54,9 +53,6 @@ public class ExtendedRuleServiceImpl extends RuleServiceImpl
|
||||
|
||||
/** node service */
|
||||
protected NodeService nodeService;
|
||||
|
||||
/** model security service */
|
||||
protected ModelSecurityService modelSecurityService;
|
||||
|
||||
/**
|
||||
* @param runAsRmAdmin true if run rules as rmadmin, false otherwise
|
||||
@@ -89,14 +85,6 @@ public class ExtendedRuleServiceImpl extends RuleServiceImpl
|
||||
{
|
||||
this.filePlanService = filePlanService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param modelSecurityService model security service
|
||||
*/
|
||||
public void setModelSecurityService(ModelSecurityService modelSecurityService)
|
||||
{
|
||||
this.modelSecurityService = modelSecurityService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Init method
|
||||
@@ -178,34 +166,24 @@ public class ExtendedRuleServiceImpl extends RuleServiceImpl
|
||||
// ignore and
|
||||
if (isIgnoredType(typeQName) == false)
|
||||
{
|
||||
// disable model security whilst we execute the RM rule
|
||||
//modelSecurityService.disable();
|
||||
//try
|
||||
//{
|
||||
if (runAsRmAdmin == true)
|
||||
if (runAsRmAdmin == true)
|
||||
{
|
||||
// run as rmadmin
|
||||
filePlanAuthenticationService.runAsRmAdmin(new RunAsWork<Void>()
|
||||
{
|
||||
// run as rmadmin
|
||||
filePlanAuthenticationService.runAsRmAdmin(new RunAsWork<Void>()
|
||||
{
|
||||
@Override
|
||||
public Void doWork() throws Exception
|
||||
{
|
||||
ExtendedRuleServiceImpl.super.executeRule(rule, nodeRef, executedRules);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
// run as current user
|
||||
ExtendedRuleServiceImpl.super.executeRule(rule, nodeRef, executedRules);
|
||||
}
|
||||
//}
|
||||
//finally
|
||||
//{
|
||||
// enable model security
|
||||
// modelSecurityService.enable();
|
||||
//}
|
||||
@Override
|
||||
public Void doWork() throws Exception
|
||||
{
|
||||
ExtendedRuleServiceImpl.super.executeRule(rule, nodeRef, executedRules);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
// run as current user
|
||||
ExtendedRuleServiceImpl.super.executeRule(rule, nodeRef, executedRules);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
Reference in New Issue
Block a user