From a424721cfb4a68f7b56ff891b6fe513eb919bd70 Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Fri, 2 May 2014 15:43:01 -0400 Subject: [PATCH 1/2] =?UTF-8?q?Bug=200014740:=20Fix.=20Se=20retiran=20los?= =?UTF-8?q?=20grupos=20que=20no=20contengan=20usuarios=20con=20el=20permis?= =?UTF-8?q?o=20PM=5FSUPERVISOR=20de=20la=20lista=20de=20asignaci=C3=B3n=20?= =?UTF-8?q?de=20los=20supervisores.=20En=20la=20API=20como=20en=20PM.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workflow/engine/classes/class.processMap.php | 18 ++++++++++++++---- .../BusinessModel/ProcessSupervisor.php | 19 ++++++++++++++----- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/workflow/engine/classes/class.processMap.php b/workflow/engine/classes/class.processMap.php index 2faa8eb87..9e2a06f3e 100755 --- a/workflow/engine/classes/class.processMap.php +++ b/workflow/engine/classes/class.processMap.php @@ -3417,10 +3417,20 @@ class processMap $oDataset->next(); while ($aRow = $oDataset->getRow()) { - $aRespLi[] = array('UID' => $aRow['GRP_UID'], - 'USER_GROUP' => $aRow['GRP_TITLE'], - 'TYPE_UID' => 'Group', - 'PRO_UID' => $sProcessUID); + $group = new ProcessMaker\BusinessModel\Group(); + $userGroup = $group->getUsers('USERS', $aRow['GRP_UID']); + foreach ($userGroup as $value) { + $userRole = new ProcessMaker\BusinessModel\User(); + $permission = $userRole->loadUserRolePermission('PROCESSMAKER', $value["USR_UID"]); + foreach ($permission as $values) { + if ($values["PER_CODE"] == 'PM_SUPERVISOR') { + $aRespLi[] = array('UID' => $aRow['GRP_UID'], + 'USER_GROUP' => $aRow['GRP_TITLE'], + 'TYPE_UID' => 'Group', + 'PRO_UID' => $sProcessUID); + } + } + } $oDataset->next(); } diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/ProcessSupervisor.php b/workflow/engine/src/ProcessMaker/BusinessModel/ProcessSupervisor.php index afb34c33c..86f215cfb 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/ProcessSupervisor.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/ProcessSupervisor.php @@ -159,7 +159,9 @@ class ProcessSupervisor public function getAvailableProcessSupervisors($obj_type, $sProcessUID = '') { try { + require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Roles.php"); $aRespLi = array(); + $userRole = new \ProcessMaker\BusinessModel\User(); // Groups $oCriteria = new \Criteria('workflow'); $oCriteria->addSelectColumn(\ProcessUserPeer::USR_UID); @@ -193,9 +195,18 @@ class ProcessSupervisor $oDataset->next(); if ($obj_type == 'group' || $obj_type == '') { while ($aRow = $oDataset->getRow()) { - $aRespLi[] = array('grp_uid' => $aRow['GRP_UID'], - 'grp_name' => $aRow['GRP_TITLE'], - 'obj_type' => "group"); + $group = new \ProcessMaker\BusinessModel\Group(); + $userGroup = $group->getUsers('USERS', $aRow['GRP_UID']); + foreach ($userGroup as $value) { + $permission = $userRole->loadUserRolePermission('PROCESSMAKER', $value["USR_UID"]); + foreach ($permission as $values) { + if ($values["PER_CODE"] == 'PM_SUPERVISOR') { + $aRespLi[] = array('grp_uid' => $aRow['GRP_UID'], + 'grp_name' => $aRow['GRP_TITLE'], + 'obj_type' => "group"); + } + } + } $oDataset->next(); } } @@ -209,8 +220,6 @@ class ProcessSupervisor $oDataset->next(); $aUIDS = array(); while ($aRow = $oDataset->getRow()) { - require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Roles.php"); - $userRole = new \ProcessMaker\BusinessModel\User(); $permission = $userRole->loadUserRolePermission('PROCESSMAKER', $aRow['USR_UID']); foreach ($permission as $key => $value) { if ($value["PER_CODE"] == 'PM_SUPERVISOR') { From 736f1220644a97fb246ff28c85b0aa4d3f6f0b23 Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Fri, 2 May 2014 16:25:13 -0400 Subject: [PATCH 2/2] =?UTF-8?q?Bug=200014740:=20Fix.=20Se=20retiran=20los?= =?UTF-8?q?=20grupos=20que=20no=20contengan=20usuarios=20con=20el=20permis?= =?UTF-8?q?o=20PM=5FSUPERVISOR=20de=20la=20lista=20de=20asignaci=C3=B3n=20?= =?UTF-8?q?de=20los=20supervisores.=20Solo=20para=20Backend.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workflow/engine/classes/class.processMap.php | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/workflow/engine/classes/class.processMap.php b/workflow/engine/classes/class.processMap.php index 9e2a06f3e..2faa8eb87 100755 --- a/workflow/engine/classes/class.processMap.php +++ b/workflow/engine/classes/class.processMap.php @@ -3417,20 +3417,10 @@ class processMap $oDataset->next(); while ($aRow = $oDataset->getRow()) { - $group = new ProcessMaker\BusinessModel\Group(); - $userGroup = $group->getUsers('USERS', $aRow['GRP_UID']); - foreach ($userGroup as $value) { - $userRole = new ProcessMaker\BusinessModel\User(); - $permission = $userRole->loadUserRolePermission('PROCESSMAKER', $value["USR_UID"]); - foreach ($permission as $values) { - if ($values["PER_CODE"] == 'PM_SUPERVISOR') { - $aRespLi[] = array('UID' => $aRow['GRP_UID'], - 'USER_GROUP' => $aRow['GRP_TITLE'], - 'TYPE_UID' => 'Group', - 'PRO_UID' => $sProcessUID); - } - } - } + $aRespLi[] = array('UID' => $aRow['GRP_UID'], + 'USER_GROUP' => $aRow['GRP_TITLE'], + 'TYPE_UID' => 'Group', + 'PRO_UID' => $sProcessUID); $oDataset->next(); }