mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
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:
@@ -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"
|
||||
|
@@ -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"/>
|
||||
|
@@ -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));
|
||||
}
|
||||
}
|
@@ -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());
|
||||
|
Reference in New Issue
Block a user