From 3eff6ad14f49e235dfc9e0e38cbd9cdb6eb89490 Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Mena Date: Wed, 17 Jan 2018 12:24:53 -0400 Subject: [PATCH 1/2] HOR-4265 Self-service value based assignment is not working using an array for the value of the variable - Change validation in method is Self Service. --- workflow/engine/classes/Cases.php | 42 +++++++++++++++---------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/workflow/engine/classes/Cases.php b/workflow/engine/classes/Cases.php index ce5f7a0c8..7a4f4e83d 100644 --- a/workflow/engine/classes/Cases.php +++ b/workflow/engine/classes/Cases.php @@ -351,6 +351,8 @@ class Cases $row = $rs->getRow(); } + + $c = new Criteria(); $c->addSelectColumn(TaskPeer::TAS_UID); $c->addSelectColumn(TaskPeer::TAS_TITLE); @@ -380,41 +382,37 @@ class Cases $tasks = $this->getSelfServiceTasks($USR_UID); foreach ($tasks as $key => $val) { - if ($TAS_UID == $val['uid']) { + if ($TAS_UID === $val['uid']) { return true; } } - if ($APP_UID != '') { + if (!empty($APP_UID)) { $task = new Task(); $arrayTaskData = $task->load($TAS_UID); - $taskGroupVariable = trim($arrayTaskData["TAS_GROUP_VARIABLE"], " @#"); + $taskGroupVariable = trim($arrayTaskData['TAS_GROUP_VARIABLE'], ' @#'); $caseData = $this->loadCase($APP_UID); - if (isset($caseData["APP_DATA"][$taskGroupVariable])) { - $dataVariable = $caseData["APP_DATA"][$taskGroupVariable]; + if (isset($caseData['APP_DATA'][$taskGroupVariable])) { + $dataVariable = $caseData['APP_DATA'][$taskGroupVariable]; - if (is_array($dataVariable)) { - //UIDs of Users - if (!empty($dataVariable) && in_array($USR_UID, $dataVariable)) { + if (empty($dataVariable)) { + return false; + } + + $dataVariable = is_array($dataVariable)? $dataVariable : (array)trim($dataVariable); + + if (in_array($USR_UID, $dataVariable, true)) { + return true; + } + + $groups = new Groups(); + foreach ($groups->getActiveGroupsForAnUser($USR_UID) as $key => $group) { + if (in_array($group, $dataVariable, true)) { return true; } - } else { - //UID of Group - $dataVariable = trim($dataVariable); - - $group = new Groups(); - - if (!empty($dataVariable) && in_array($dataVariable, $group->getActiveGroupsForAnUser($USR_UID))) { - return true; - } else { - //UID of User - if (!empty($dataVariable) && $dataVariable == $USR_UID) { - return true; - } - } } } } From 0877a0c29294b0b2e6106dfe483ff9f6e7f9312b Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Mena Date: Wed, 17 Jan 2018 13:45:23 -0400 Subject: [PATCH 2/2] Delete line --- workflow/engine/classes/Cases.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/workflow/engine/classes/Cases.php b/workflow/engine/classes/Cases.php index 7a4f4e83d..b1fdb7eeb 100644 --- a/workflow/engine/classes/Cases.php +++ b/workflow/engine/classes/Cases.php @@ -351,8 +351,6 @@ class Cases $row = $rs->getRow(); } - - $c = new Criteria(); $c->addSelectColumn(TaskPeer::TAS_UID); $c->addSelectColumn(TaskPeer::TAS_TITLE);