BUG-14596 User with "PM_REASSIGNCASE" permission can not reassign cases to himself.

This is  new feature, now the user with the "PM_REASSIGNCASE" permission is showd in the list of users to reassign the case.
This commit is contained in:
jennylee
2014-05-15 10:51:31 -04:00
parent 3dd51aab8d
commit 2a282fe7d3
2 changed files with 18 additions and 57 deletions

View File

@@ -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

View File

@@ -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,18 +6452,25 @@ 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');
$c->addSelectColumn(UsersPeer::USR_UID);