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:
@@ -92,6 +92,28 @@ 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
|
||||
|
||||
@@ -6415,16 +6415,25 @@ 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);
|
||||
$row = array();
|
||||
|
||||
$groups = new Groups();
|
||||
foreach ($aAux as $aGroup) {
|
||||
$aUsers = $groups->getUsersOfGroup($aGroup['GRP_UID']);
|
||||
foreach ($aUsers as $aUser) {
|
||||
if ($aUser['USR_UID'] != $USR_UID) {
|
||||
$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) {
|
||||
$row[] = $aUser['USR_UID'];
|
||||
}
|
||||
}
|
||||
@@ -6432,7 +6441,14 @@ class Cases
|
||||
|
||||
$aAux = $oTasks->getUsersOfTask($TAS_UID, 1);
|
||||
foreach ($aAux as $aUser) {
|
||||
if ($aUser['USR_UID'] != $USR_UID) {
|
||||
$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) {
|
||||
$row[] = $aUser['USR_UID'];
|
||||
}
|
||||
}
|
||||
@@ -6444,7 +6460,14 @@ class Cases
|
||||
foreach ($aAux as $aGroup) {
|
||||
$aUsers = $groups->getUsersOfGroup($aGroup['GRP_UID']);
|
||||
foreach ($aUsers as $aUser) {
|
||||
if ($aUser['USR_UID'] != $USR_UID) {
|
||||
$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) {
|
||||
$row[] = $aUser['USR_UID'];
|
||||
}
|
||||
}
|
||||
@@ -6453,7 +6476,14 @@ class Cases
|
||||
// User Ad Hoc
|
||||
$aAux = $oTasks->getUsersOfTask($TAS_UID, 2);
|
||||
foreach ($aAux as $aUser) {
|
||||
if ($aUser['USR_UID'] != $USR_UID) {
|
||||
$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) {
|
||||
$row[] = $aUser['USR_UID'];
|
||||
}
|
||||
}
|
||||
@@ -6527,7 +6557,6 @@ class Cases
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $rows;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user