From 498083acc54b6fb6347b5a5e71f8db93ab302275 Mon Sep 17 00:00:00 2001 From: Yannick ROGER Date: Wed, 26 Feb 2014 11:47:54 +0100 Subject: [PATCH] Fix EZP-22372: Workflow cannot be edited if you remove a user and/or a group --- .../event/ezapprove/ezapprovetype.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/kernel/classes/workflowtypes/event/ezapprove/ezapprovetype.php b/kernel/classes/workflowtypes/event/ezapprove/ezapprovetype.php index f62eaa5a355..f26da174953 100644 --- a/kernel/classes/workflowtypes/event/ezapprove/ezapprovetype.php +++ b/kernel/classes/workflowtypes/event/ezapprove/ezapprovetype.php @@ -378,6 +378,14 @@ function validateGroupIDList( $userGroupIDList, &$reason ) return $returnState; } + /** + * @param eZHTTPTool $http + * @param $base + * @param eZWorkflowEvent $workflowEvent + * @param $validation + * + * @return bool|int + */ function validateHTTPInput( $http, $base, $workflowEvent, &$validation ) { $returnState = eZInputValidator::STATE_ACCEPTED; @@ -385,6 +393,15 @@ function validateHTTPInput( $http, $base, $workflowEvent, &$validation ) if ( !$http->hasSessionVariable( 'BrowseParameters' ) ) { + // No validation when deleting to avoid blocking deletion of invalid items + if ( + $http->hasPostVariable( 'DeleteApproveUserIDArray_' . $workflowEvent->attribute( 'id' ) ) || + $http->hasPostVariable( 'DeleteApproveGroupIDArray_' . $workflowEvent->attribute( 'id' ) ) + ) + { + return eZInputValidator::STATE_ACCEPTED; + } + // check approve-users $approversIDs = array_unique( $this->attributeDecoder( $workflowEvent, 'approve_users' ) ); if ( is_array( $approversIDs ) and