PM-3324 "REST endpoint PUT /cases/{app_uid}/reassign-case" SOLVED

> Code Isuue:
  0017925: REST endpoint PUT /cases/{app_uid}/reassign-case can not reassign cases to ad hoc users
> Solution:
  Se agrega validacion en el siguiente Endpoint cuando se utiliza el servicio REST, el mismo se puede reasingar un caso
  a un usuario de tipo Ad Hoc.
  PUT /cases/{app_uid}/reassign-case
This commit is contained in:
Luis Fernando Saisa Lopez
2015-08-26 15:13:48 -04:00
parent 5508ca4657
commit c30ba2f9b3
2 changed files with 13 additions and 5 deletions

View File

@@ -328,9 +328,10 @@ class Derivation
/* get all users, from any task, if the task have Groups, the function expand the group
*
* @param string $sTasUid the task uidUser
* @param bool $flagIncludeAdHocUsers
* @return Array $users an array with userID order by USR_UID
*/
function getAllUsersFromAnyTask ($sTasUid)
function getAllUsersFromAnyTask($sTasUid, $flagIncludeAdHocUsers = false)
{
$users = array ();
$c = new Criteria( 'workflow' );
@@ -338,7 +339,16 @@ class Derivation
$c->addSelectColumn( TaskUserPeer::USR_UID );
$c->addSelectColumn( TaskUserPeer::TU_RELATION );
$c->add( TaskUserPeer::TAS_UID, $sTasUid );
if ($flagIncludeAdHocUsers) {
$c->add(
$c->getNewCriterion(TaskUserPeer::TU_TYPE, 1, Criteria::EQUAL)->addOr(
$c->getNewCriterion(TaskUserPeer::TU_TYPE, 2, Criteria::EQUAL))
);
} else {
$c->add(TaskUserPeer::TU_TYPE, 1);
}
$rs = TaskUserPeer::DoSelectRs( $c );
$rs->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$rs->next();
@@ -1245,4 +1255,3 @@ class Derivation
}
}
}

View File

@@ -2891,7 +2891,7 @@ class wsBase
$tasUid = $aRow['TAS_UID'];
$derivation = new Derivation();
$userList = $derivation->getAllUsersFromAnyTask( $tasUid );
$userList = $derivation->getAllUsersFromAnyTask($tasUid, true);
if (! in_array( $userIdTarget, $userList )) {
$result = new wsResponse( 34, G::loadTranslation( 'ID_TARGET_USER_DOES_NOT_HAVE_RIGHTS' ) );
@@ -3370,4 +3370,3 @@ class wsBase
}
}
}