diff --git a/rbac/engine/classes/model/RolesPermissions.php b/rbac/engine/classes/model/RolesPermissions.php index 276259921..f571c823e 100755 --- a/rbac/engine/classes/model/RolesPermissions.php +++ b/rbac/engine/classes/model/RolesPermissions.php @@ -92,28 +92,6 @@ class RolesPermissions extends BaseRolesPermissions return $this->permission_name; } - - /** - * @return string - */ - public function getPermissionsByRolUid($rolUid = '') - { - try { - $oCriteria = new Criteria('rbac'); - $oCriteria->add(RolesPermissionsPeer::ROL_UID, $rolUid); - $oDataset = RolesPermissionsPeer::doSelectRS($oCriteria); - $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $res = array(); - while ($oDataset->next()) { - $res[] = $aRow = $oDataset->getRow(); - } - return $res; - } - catch (Exception $oError) { - throw($oError); - } - } - /** * * @param string $name diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index 2cb513cf9..9272aae52 100755 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -6415,9 +6415,6 @@ class Cases { G::LoadClass('groups'); G::LoadClass('tasks'); - $r = new Roles(); - $rolPerm = new RolesPermissions(); - $perm = false; $oTasks = new Tasks(); $aAux = $oTasks->getGroupsOfTask($TAS_UID, 1); @@ -6426,14 +6423,7 @@ class Cases foreach ($aAux as $aGroup) { $aUsers = $groups->getUsersOfGroup($aGroup['GRP_UID']); foreach ($aUsers as $aUser) { - $rol_perm = $r->loadByCode($aUser['USR_ROLE']); - $permissions = $rolPerm->getPermissionsByRolUid( $rol_perm['ROL_UID'] ); - foreach ($permissions as $permission){ - if ($permission['PER_UID'] == "00000000000000000000000000000007"){ - $perm = true; - } - } - if ($aUser['USR_UID'] != $USR_UID || $perm == true) { + if ($aUser['USR_UID'] != $USR_UID) { $row[] = $aUser['USR_UID']; } } @@ -6441,14 +6431,7 @@ class Cases $aAux = $oTasks->getUsersOfTask($TAS_UID, 1); foreach ($aAux as $aUser) { - $rol_perm = $r->loadByCode($aUser['USR_ROLE']); - $permissions = $rolPerm->getPermissionsByRolUid( $rol_perm['ROL_UID'] ); - foreach ($permissions as $permission){ - if ($permission['PER_UID'] == "00000000000000000000000000000007"){ - $perm = true; - } - } - if ($aUser['USR_UID'] != $USR_UID || $perm == true) { + if ($aUser['USR_UID'] != $USR_UID) { $row[] = $aUser['USR_UID']; } } @@ -6460,14 +6443,7 @@ class Cases foreach ($aAux as $aGroup) { $aUsers = $groups->getUsersOfGroup($aGroup['GRP_UID']); foreach ($aUsers as $aUser) { - $rol_perm = $r->loadByCode($aUser['USR_ROLE']); - $permissions = $rolPerm->getPermissionsByRolUid( $rol_perm['ROL_UID'] ); - foreach ($permissions as $permission){ - if ($permission['PER_UID'] == "00000000000000000000000000000007"){ - $perm = true; - } - } - if ($aUser['USR_UID'] != $USR_UID || $perm == true) { + if ($aUser['USR_UID'] != $USR_UID) { $row[] = $aUser['USR_UID']; } } @@ -6476,17 +6452,24 @@ class Cases // User Ad Hoc $aAux = $oTasks->getUsersOfTask($TAS_UID, 2); foreach ($aAux as $aUser) { - $rol_perm = $r->loadByCode($aUser['USR_ROLE']); - $permissions = $rolPerm->getPermissionsByRolUid( $rol_perm['ROL_UID'] ); - foreach ($permissions as $permission){ - if ($permission['PER_UID'] == "00000000000000000000000000000007"){ - $perm = true; - } - } - if ($aUser['USR_UID'] != $USR_UID || $perm == true) { + if ($aUser['USR_UID'] != $USR_UID) { $row[] = $aUser['USR_UID']; } } + + global $RBAC; + //Adding the actual user if this has the PM_REASSIGNCASE permission assigned. + if ($RBAC->userCanAccess('PM_REASSIGNCASE') == 1){ + foreach ($row as $usr) { + $usr_exist = false; + if($usr == $USR_UID){ + $usr_exist = true; + } + } + if ($usr_exist == false){ + $row[] = $USR_UID; + } + } require_once 'classes/model/Users.php'; $c = new Criteria('workflow');