PM-3407 "0018218: Self-service value based not accepting USER ID" SOLVED

Issue:
    0018218: Self-service value based not accepting USER ID
Cause:
    Nuevo requerimiento de funciones
Solution:
    La asignacion de tipo "Self Service Value Based Assignment" ahora funciona de la siguiente manera:
        - Si se desea definir a un grupo entonces se tendra el siguiente caso:
            @@SYS_GROUP_TO_BE_ASSIGNED = "00000000000000000000000groupuid1";
        - Si se desea definir a usuarios entonces se tendra el siguiente caso:
            @@SYS_GROUP_TO_BE_ASSIGNED = array("000000000000000000000000useruid1", "000000000000000000000000useruid2");
        - Por lo que el engine reconocera lo siguiente:
            * A un array como un array de UIDs de usuarios
            * A un string como un UID de un grupo
This commit is contained in:
Victor Saisa Lopez
2015-09-01 14:57:25 -04:00
parent f2ad397343
commit fce02e1ee9
7 changed files with 79 additions and 40 deletions

View File

@@ -493,15 +493,27 @@ class Cases
}
if ($APP_UID != '') {
$groupsInstance = new Groups();
$groups = $groupsInstance->getActiveGroupsForAnUser($USR_UID);
$taskInstance = new Task();
$taskData = $taskInstance->Load($TAS_UID);
$tasGroupVariable = str_replace(array('@', '#'), '', $taskData['TAS_GROUP_VARIABLE']);
$caseData = $this->LoadCase($APP_UID);
if (isset($caseData['APP_DATA'][$tasGroupVariable])) {
if (trim($caseData['APP_DATA'][$tasGroupVariable]) != '') {
if (in_array(trim($caseData['APP_DATA'][$tasGroupVariable]), $groups)) {
$dataVariable = $caseData["APP_DATA"][$tasGroupVariable];
if (is_array($dataVariable)) {
//UIDs of Users
if (!empty($dataVariable) && in_array($USR_UID, $dataVariable)) {
return true;
}
} else {
//UID of Group
$dataVariable = trim($dataVariable);
$group = new Groups();
if (!empty($dataVariable) && in_array($dataVariable, $group->getActiveGroupsForAnUser($USR_UID))) {
return true;
}
}