mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
disable on update properties for frozen items when setting the record search properties
This commit is contained in:
@@ -52,6 +52,7 @@
|
||||
<property name="nodeService" ref="nodeService"/>
|
||||
<property name="recordService" ref="recordService"/>
|
||||
<property name="recordFolderService" ref="RecordFolderService"/>
|
||||
<property name="frozenAspect" ref="rma.freeze" />
|
||||
</bean>
|
||||
|
||||
<bean id="rm.baseBehaviour" abstract="true" parent="baseService">
|
||||
|
@@ -45,6 +45,7 @@ import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedul
|
||||
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.event.EventCompletionDetails;
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.rma.aspect.FrozenAspect;
|
||||
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.vital.VitalRecordDefinition;
|
||||
@@ -99,6 +100,11 @@ public class RecordsManagementSearchBehaviour implements RecordsManagementModel
|
||||
/** Record service*/
|
||||
private RecordService recordService;
|
||||
|
||||
/**
|
||||
* Frozen aspect
|
||||
*/
|
||||
private FrozenAspect frozenAspect;
|
||||
|
||||
/**
|
||||
* @param nodeService the nodeService to set
|
||||
*/
|
||||
@@ -155,6 +161,15 @@ public class RecordsManagementSearchBehaviour implements RecordsManagementModel
|
||||
this.recordService = recordService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param frozenAspect frozen aspect
|
||||
*/
|
||||
public void setFrozenAspect(FrozenAspect frozenAspect)
|
||||
{
|
||||
this.frozenAspect = frozenAspect;
|
||||
}
|
||||
|
||||
|
||||
/** on add search aspect behaviour */
|
||||
private JavaBehaviour onAddSearchAspect = new JavaBehaviour(this, "rmSearchAspectAdd", NotificationFrequency.TRANSACTION_COMMIT);
|
||||
|
||||
@@ -800,7 +815,9 @@ public class RecordsManagementSearchBehaviour implements RecordsManagementModel
|
||||
if (!methodCached("setVitalRecordDefinitionDetails", nodeRef))
|
||||
{
|
||||
VitalRecordDefinition vrd = vitalRecordService.getVitalRecordDefinition(nodeRef);
|
||||
|
||||
try
|
||||
{
|
||||
frozenAspect.disableOnPropUpdateFrozenAspect();
|
||||
if (vrd != null && vrd.isEnabled() && vrd.getReviewPeriod() != null)
|
||||
{
|
||||
// Set the property values
|
||||
@@ -822,6 +839,12 @@ public class RecordsManagementSearchBehaviour implements RecordsManagementModel
|
||||
nodeService.setProperty(nodeRef, PROP_RS_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION, null);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
frozenAspect.enableOnPropUpdateFrozenAspect();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -871,6 +894,9 @@ public class RecordsManagementSearchBehaviour implements RecordsManagementModel
|
||||
{
|
||||
if (schedule != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
frozenAspect.disableOnPropUpdateFrozenAspect();
|
||||
nodeService.setProperty(recordOrFolder, PROP_RS_DISPOITION_AUTHORITY, schedule.getDispositionAuthority());
|
||||
nodeService.setProperty(recordOrFolder, PROP_RS_DISPOITION_INSTRUCTIONS, schedule.getDispositionInstructions());
|
||||
|
||||
@@ -880,6 +906,11 @@ public class RecordsManagementSearchBehaviour implements RecordsManagementModel
|
||||
logger.debug("Set rma:recordSearchDispositionInstructions for node " + recordOrFolder + " to: " + schedule.getDispositionInstructions());
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
frozenAspect.enableOnPropUpdateFrozenAspect();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -68,6 +68,11 @@ public class FrozenAspect extends BaseBehaviourBean
|
||||
NodeServicePolicies.OnUpdatePropertiesPolicy,
|
||||
NodeServicePolicies.BeforeMoveNodePolicy
|
||||
{
|
||||
/**
|
||||
* Behaviour name for on update properties for frozen aspect
|
||||
*/
|
||||
private static final String ON_UPDATE_PROP_FROZEN_BEHAVIOUR_NAME = "onUpdatePropertiesFrozenAspect";
|
||||
|
||||
/** freeze service */
|
||||
protected FreezeService freezeService;
|
||||
|
||||
@@ -79,6 +84,32 @@ public class FrozenAspect extends BaseBehaviourBean
|
||||
this.freezeService = freezeService;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Disable the on update properties for frozen aspect behaviour
|
||||
*/
|
||||
public void disableOnPropUpdateFrozenAspect()
|
||||
{
|
||||
org.alfresco.repo.policy.Behaviour behaviour = getBehaviour(ON_UPDATE_PROP_FROZEN_BEHAVIOUR_NAME);
|
||||
if (behaviour != null)
|
||||
{
|
||||
behaviour.disable();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable the on update properties for frozen aspect
|
||||
*/
|
||||
public void enableOnPropUpdateFrozenAspect()
|
||||
{
|
||||
org.alfresco.repo.policy.Behaviour behaviour = getBehaviour(ON_UPDATE_PROP_FROZEN_BEHAVIOUR_NAME);
|
||||
if (behaviour != null && !behaviour.isEnabled())
|
||||
{
|
||||
behaviour.enable();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure that no frozen node is deleted.
|
||||
*
|
||||
@@ -229,6 +260,7 @@ public class FrozenAspect extends BaseBehaviourBean
|
||||
@Behaviour
|
||||
(
|
||||
kind = BehaviourKind.CLASS,
|
||||
name = ON_UPDATE_PROP_FROZEN_BEHAVIOUR_NAME,
|
||||
notificationFrequency = NotificationFrequency.FIRST_EVENT
|
||||
)
|
||||
public void onUpdateProperties(NodeRef nodeRef, Map<QName, Serializable> before, Map<QName, Serializable> after)
|
||||
|
Reference in New Issue
Block a user