Merged DEV/BUGFIXING/HEAD-2014_12_09 to BRANCHES/V2.3:

93659: RM-1636 : Disposition steps can be executed for folder with frozen record
        - add a reference of FreezeService to TransferService and perform the full check only when the user tries to complete the transfer/accession

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.3@94045 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Tuna Aksoy
2015-01-26 15:19:21 +00:00
parent fc750835eb
commit 4aef437c19
2 changed files with 17 additions and 0 deletions

View File

@@ -166,6 +166,7 @@
<property name="recordService" ref="RecordService" />
<property name="recordFolderService" ref="RecordFolderService" />
<property name="nodeService" ref="nodeService"/>
<property name="freezeService" ref="FreezeService"/>
</bean>
<bean id="RmTransferService" class="org.springframework.aop.framework.ProxyFactoryBean">

View File

@@ -30,6 +30,7 @@ import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionActionDefinition;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
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.record.RecordService;
import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderService;
@@ -74,6 +75,9 @@ public class TransferServiceImpl extends ServiceBaseImpl
/** Record folder service */
protected RecordFolderService recordFolderService;
/** Freeze Service */
protected FreezeService freezeService;
/**
* @param filePlanService file plan service
*/
@@ -106,6 +110,14 @@ public class TransferServiceImpl extends ServiceBaseImpl
this.recordFolderService = recordFolderService;
}
/**
* @param freezeService freeze service
*/
public void setFreezeService(FreezeService freezeService)
{
this.freezeService = freezeService;
}
/**
* @see org.alfresco.module.org_alfresco_module_rm.transfer.TransferService#transfer(NodeRef, boolean)
*/
@@ -228,6 +240,10 @@ public class TransferServiceImpl extends ServiceBaseImpl
List<ChildAssociationRef> assocs = nodeService.getChildAssocs(nodeRef, ASSOC_TRANSFERRED, RegexQNamePattern.MATCH_ALL);
for (ChildAssociationRef assoc : assocs)
{
if (freezeService.hasFrozenChildren(assoc.getChildRef()))
{
throw new AlfrescoRuntimeException("Cound not complete a transfer that contain ");
}
markComplete(assoc.getChildRef(), accessionIndicator, transferLocation);
}