From ed4dd40819022a7b636eba0d8893ccbee0aaf3df Mon Sep 17 00:00:00 2001 From: Jonathan Gamba Date: Tue, 23 Jan 2018 14:19:04 -0600 Subject: [PATCH 1/2] Adding missing validation --- .../workflows/business/WorkflowAPIImpl.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/business/WorkflowAPIImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/business/WorkflowAPIImpl.java index 2d47416e01ec..d29597a6fa9f 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/business/WorkflowAPIImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/business/WorkflowAPIImpl.java @@ -293,12 +293,18 @@ public void deleteStep(final WorkflowStep step) throws DotDataException { // Checking for Next Step references for(WorkflowStep otherStep : findSteps(findScheme(step.getSchemeId()))){ - for(WorkflowAction action : findActions(otherStep, APILocator.getUserAPI().getSystemUser())){ - - if(action.getNextStep().equals(step.getId())) { - throw new DotDataException("
Step : '" + step.getName() + "' is being referenced by

" + - " Step : '"+otherStep.getName() + "' -> Action : '" + action.getName() + "'

"); - } + /* + Verify we are not validating the next step of the step we want to delete. + Remember the step can point to itself and that should not be a restriction when deleting. + */ + if (!otherStep.getId().equals(step.getId())) { + for(WorkflowAction action : findActions(otherStep, APILocator.getUserAPI().getSystemUser())){ + + if(action.getNextStep().equals(step.getId())) { + throw new DotDataException("
Step : '" + step.getName() + "' is being referenced by

" + + " Step : '"+otherStep.getName() + "' -> Action : '" + action.getName() + "'

"); + } + } } } From 3898a0b92c029da350e38708c9c7dad32a2628ef Mon Sep 17 00:00:00 2001 From: Jonathan Gamba Date: Tue, 23 Jan 2018 14:20:57 -0600 Subject: [PATCH 2/2] Fixing Typo --- .../portlets/workflows/business/WorkflowAPIImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/business/WorkflowAPIImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/business/WorkflowAPIImpl.java index d29597a6fa9f..8db53ab7d02a 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/business/WorkflowAPIImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/business/WorkflowAPIImpl.java @@ -294,7 +294,7 @@ public void deleteStep(final WorkflowStep step) throws DotDataException { for(WorkflowStep otherStep : findSteps(findScheme(step.getSchemeId()))){ /* - Verify we are not validating the next step of the step we want to delete. + Verify we are not validating the next step is the step we want to delete. Remember the step can point to itself and that should not be a restriction when deleting. */ if (!otherStep.getId().equals(step.getId())) {