Merge branch 'feature-2.4/RM-3265_MoveDestroyedRecordFolders' into 'release/V2.4'

Feature 2.4/rm 3265 move destroyed record folders

See merge request !127
This commit is contained in:
Ana Bozianu
2017-03-14 08:22:39 +00:00
4 changed files with 50 additions and 5 deletions

View File

@@ -60,9 +60,9 @@
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.TransferredCapabilityCondition"> class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.TransferredCapabilityCondition">
</bean> </bean>
<bean id="capabilityCondition.movable" <bean id="capabilityCondition.movableRecordFolder"
parent="capabilityCondition.base" parent="capabilityCondition.base"
class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.MovableCapabilityCondition"> class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition.MovableRecordFolderCapabilityCondition">
</bean> </bean>
<bean id="capabilityCondition.destroyed" <bean id="capabilityCondition.destroyed"

View File

@@ -122,6 +122,11 @@
<property name="name" value="MoveRecordFolder"/> <property name="name" value="MoveRecordFolder"/>
<property name="private" value="true"/> <property name="private" value="true"/>
<property name="undetermined" value="true"/> <property name="undetermined" value="true"/>
<property name="kinds">
<list>
<value>RECORD_FOLDER</value>
</list>
</property>
<property name="capabilities"> <property name="capabilities">
<list> <list>
<ref bean="rmDeleteRecordFolderCapability"/> <ref bean="rmDeleteRecordFolderCapability"/>
@@ -129,7 +134,7 @@
</property> </property>
<property name="conditions"> <property name="conditions">
<map> <map>
<entry key="capabilityCondition.movable" value="true"/> <entry key="capabilityCondition.movableRecordFolder" value="true"/>
</map> </map>
</property> </property>
<property name="targetCapability" ref="rmCreateRecordFolderCapability"/> <property name="targetCapability" ref="rmCreateRecordFolderCapability"/>

View File

@@ -36,7 +36,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
* @since 2.4.1 * @since 2.4.1
* *
*/ */
public class MovableCapabilityCondition extends AbstractCapabilityCondition public class MovableRecordFolderCapabilityCondition extends AbstractCapabilityCondition
{ {
/** /**
@@ -47,6 +47,6 @@ public class MovableCapabilityCondition extends AbstractCapabilityCondition
{ {
if (nodeService.hasAspect(nodeRef, ASPECT_GHOSTED) && dispositionService.isDisposableItemCutoff(nodeRef)) if (nodeService.hasAspect(nodeRef, ASPECT_GHOSTED) && dispositionService.isDisposableItemCutoff(nodeRef))
return true; return true;
return !dispositionService.isDisposableItemCutoff(nodeRef); return !(dispositionService.isDisposableItemCutoff(nodeRef) || recordFolderService.isRecordFolderClosed(nodeRef));
} }
} }

View File

@@ -510,6 +510,46 @@ public class MoveRecordFolderTest extends BaseRMTestCase
} }
/**
* Given a closed folder
* When we evaluate the move capability on it
* The access is denied
*/
public void testMoveClosedFolder()
{
final NodeRef destination = doTestInTransaction(new Test<NodeRef>()
{
@Override
public NodeRef run()
{
// create a record category
return filePlanService.createRecordCategory(filePlan, GUID.generate());
}
});
final NodeRef testFolder = doTestInTransaction(new Test<NodeRef>()
{
@Override
public NodeRef run()
{
// create folder
NodeRef testFolder = recordFolderService.createRecordFolder(rmContainer, GUID.generate());
// close folder
recordFolderService.closeRecordFolder(testFolder);
return testFolder;
}
@Override
public void test(NodeRef testFolder) throws Exception
{
Capability moveCapability = capabilityService.getCapability("MoveRecordFolder");
assertEquals(AccessDecisionVoter.ACCESS_DENIED, moveCapability.evaluate(testFolder, destination));
}
});
}
private NodeRef createRecordCategory(boolean recordLevel) private NodeRef createRecordCategory(boolean recordLevel)
{ {
NodeRef rc = filePlanService.createRecordCategory(filePlan, GUID.generate()); NodeRef rc = filePlanService.createRecordCategory(filePlan, GUID.generate());