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">
</bean>
<bean id="capabilityCondition.movable"
<bean id="capabilityCondition.movableRecordFolder"
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 id="capabilityCondition.destroyed"

View File

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

View File

@@ -36,7 +36,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
* @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))
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)
{
NodeRef rc = filePlanService.createRecordCategory(filePlan, GUID.generate());