Merge branch 'feature-2.4/RM-2925_noOptionToDeleteDestroyedRecordFolder' into 'release/V2.4'

Feature 2.4/rm 2925 no option to delete destroyed record folder

RM-2925 - No option to delete destroyed record folder (which maintain record metadata after destroy)

Made Delete action available for destroyed record folder, added unit test class.

See merge request !92
This commit is contained in:
Roxana Lucana-Ghetu
2016-04-15 09:18:39 +01:00
3 changed files with 103 additions and 3 deletions

View File

@@ -112,9 +112,7 @@
<property name="conditions">
<map>
<entry key="capabilityCondition.filling" value="true"/>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.frozen" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
</map>
</property>
</bean>
@@ -129,6 +127,12 @@
<ref bean="rmDeleteRecordFolderCapability"/>
</list>
</property>
<property name="conditions">
<map>
<entry key="capabilityCondition.cutoff" value="false"/>
<entry key="capabilityCondition.closed" value="false"/>
</map>
</property>
<property name="targetCapability" ref="rmCreateRecordFolderCapability"/>
</bean>

View File

@@ -0,0 +1,96 @@
/*
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
* -
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* -
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* -
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.module.org_alfresco_module_rm.test.integration.recordfolder;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import org.alfresco.module.org_alfresco_module_rm.action.impl.CompleteEventAction;
import org.alfresco.module.org_alfresco_module_rm.action.impl.CutOffAction;
import org.alfresco.module.org_alfresco_module_rm.action.impl.DestroyAction;
import org.alfresco.module.org_alfresco_module_rm.capability.Capability;
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
import org.alfresco.module.org_alfresco_module_rm.test.util.CommonRMTestUtils;
import org.alfresco.service.cmr.repository.NodeRef;
import net.sf.acegisecurity.vote.AccessDecisionVoter;
/**
* Delete record folder test.
*
* @author Roxana Lucanu
* @since 2.4
*
*/
public class DeleteRecordFolderTest extends BaseRMTestCase
{
// delete a destroyed record folder
public void testDeleteDestroyedRecordFolder() throws Exception
{
final NodeRef testFolder = doTestInTransaction(new Test<NodeRef>()
{
@Override
public NodeRef run()
{
// create folder
NodeRef testFolder = recordFolderService.createRecordFolder(rmContainer, "Peter Edward Francis");
// complete event
Map<String, Serializable> params = new HashMap<String, Serializable>(1);
params.put(CompleteEventAction.PARAM_EVENT_NAME, CommonRMTestUtils.DEFAULT_EVENT_NAME);
rmActionService.executeRecordsManagementAction(testFolder, CompleteEventAction.NAME, params);
// cutoff folder
rmActionService.executeRecordsManagementAction(testFolder, CutOffAction.NAME);
// destroy folder
rmActionService.executeRecordsManagementAction(testFolder, DestroyAction.NAME);
return testFolder;
}
@Override
public void test(NodeRef testFolder) throws Exception
{
// take a look at delete capability
Capability deleteCapability = capabilityService.getCapability("DeleteRecordFolder");
assertEquals(AccessDecisionVoter.ACCESS_GRANTED, deleteCapability.evaluate(testFolder));
}
});
doTestInTransaction(new Test<Void>()
{
@Override
public Void run() throws Exception
{
fileFolderService.delete(testFolder);
return null;
}
});
}
}

View File

@@ -431,7 +431,7 @@ public class MoveRecordFolderTest extends BaseRMTestCase
public void test(NodeRef testFolder) throws Exception
{
// take a look at the move capability
Capability moveCapability = capabilityService.getCapability("Move");
Capability moveCapability = capabilityService.getCapability("MoveRecordFolder");
assertEquals(AccessDecisionVoter.ACCESS_DENIED, moveCapability.evaluate(testFolder, destination));
}
});