mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
ALF-2036 : Can't link to a folder due to fodler already containing rules (but it doesn't)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@19563 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -29,6 +29,7 @@ import org.alfresco.service.cmr.action.ParameterDefinition;
|
||||
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.rule.Rule;
|
||||
import org.alfresco.service.cmr.rule.RuleService;
|
||||
|
||||
/**
|
||||
@@ -87,8 +88,19 @@ public class LinkRules extends ActionExecuterAbstractBase
|
||||
NodeRef linkedToNode = ((RuleService)ruleService).getLinkedToRuleNode(actionedUponNodeRef);
|
||||
if (linkedToNode == null)
|
||||
{
|
||||
// Can't link a node if it already has rules
|
||||
throw new AlfrescoRuntimeException("The current folder has rules and can not be linked to another folder.");
|
||||
// if the node has no rules we can delete the folder ready to link
|
||||
List<Rule> rules = ((RuleService)ruleService).getRules(actionedUponNodeRef, false);
|
||||
if (rules.isEmpty() == false)
|
||||
{
|
||||
// Can't link a node if it already has rules
|
||||
throw new AlfrescoRuntimeException("The current folder has rules and can not be linked to another folder.");
|
||||
}
|
||||
else
|
||||
{
|
||||
// Delete the rules system folder
|
||||
NodeRef ruleFolder = ruleService.getSavedRuleFolderAssoc(actionedUponNodeRef).getChildRef();
|
||||
nodeService.deleteNode(ruleFolder);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -232,6 +232,11 @@ public class RuleLinkTest extends BaseSpringTest
|
||||
|
||||
try
|
||||
{
|
||||
rules = ruleService.getRules(folderTwo);
|
||||
assertNotNull(rules);
|
||||
assertFalse(rules.isEmpty());
|
||||
assertEquals(2, rules.size());
|
||||
|
||||
link(folderTwo, folderOne);
|
||||
fail("Shouldn't be able to link a folder that already has rules that it owns.");
|
||||
}
|
||||
|
Reference in New Issue
Block a user