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 $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
|
* @param string $name
|
||||||
|
|||||||
@@ -6415,16 +6415,25 @@ class Cases
|
|||||||
{
|
{
|
||||||
G::LoadClass('groups');
|
G::LoadClass('groups');
|
||||||
G::LoadClass('tasks');
|
G::LoadClass('tasks');
|
||||||
|
$r = new Roles();
|
||||||
|
$rolPerm = new RolesPermissions();
|
||||||
|
$perm = false;
|
||||||
|
|
||||||
$oTasks = new Tasks();
|
$oTasks = new Tasks();
|
||||||
$aAux = $oTasks->getGroupsOfTask($TAS_UID, 1);
|
$aAux = $oTasks->getGroupsOfTask($TAS_UID, 1);
|
||||||
$row = array();
|
$row = array();
|
||||||
|
|
||||||
$groups = new Groups();
|
$groups = new Groups();
|
||||||
foreach ($aAux as $aGroup) {
|
foreach ($aAux as $aGroup) {
|
||||||
$aUsers = $groups->getUsersOfGroup($aGroup['GRP_UID']);
|
$aUsers = $groups->getUsersOfGroup($aGroup['GRP_UID']);
|
||||||
foreach ($aUsers as $aUser) {
|
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'];
|
$row[] = $aUser['USR_UID'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6432,7 +6441,14 @@ class Cases
|
|||||||
|
|
||||||
$aAux = $oTasks->getUsersOfTask($TAS_UID, 1);
|
$aAux = $oTasks->getUsersOfTask($TAS_UID, 1);
|
||||||
foreach ($aAux as $aUser) {
|
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'];
|
$row[] = $aUser['USR_UID'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6444,7 +6460,14 @@ class Cases
|
|||||||
foreach ($aAux as $aGroup) {
|
foreach ($aAux as $aGroup) {
|
||||||
$aUsers = $groups->getUsersOfGroup($aGroup['GRP_UID']);
|
$aUsers = $groups->getUsersOfGroup($aGroup['GRP_UID']);
|
||||||
foreach ($aUsers as $aUser) {
|
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'];
|
$row[] = $aUser['USR_UID'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6453,7 +6476,14 @@ class Cases
|
|||||||
// User Ad Hoc
|
// User Ad Hoc
|
||||||
$aAux = $oTasks->getUsersOfTask($TAS_UID, 2);
|
$aAux = $oTasks->getUsersOfTask($TAS_UID, 2);
|
||||||
foreach ($aAux as $aUser) {
|
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'];
|
$row[] = $aUser['USR_UID'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6527,7 +6557,6 @@ class Cases
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $rows;
|
return $rows;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user