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

@@ -338,40 +338,50 @@ class AppCacheView extends BaseAppCacheView
//Get APP_UIDs
$group = new Groups();
$arrayGroup = $group->getActiveGroupsForAnUser($userUid); //Get Groups of User
$arrayUid = $group->getActiveGroupsForAnUser($userUid); //Set UIDs of Groups (Groups of User)
$arrayUid[] = $userUid; //Set UID of User
if (count($arrayGroup) > 0) {
$criteria = new Criteria("workflow");
$criteria = new Criteria("workflow");
$criteria->setDistinct();
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::APP_UID);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::DEL_INDEX);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::TAS_UID);
$criteria->setDistinct();
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::APP_UID);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::DEL_INDEX);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::TAS_UID);
$arrayCondition = array();
$arrayCondition[] = array(AppAssignSelfServiceValuePeer::APP_UID, AppDelegationPeer::APP_UID, Criteria::EQUAL);
$arrayCondition[] = array(AppAssignSelfServiceValuePeer::DEL_INDEX, AppDelegationPeer::DEL_INDEX, Criteria::EQUAL);
$arrayCondition[] = array(AppAssignSelfServiceValuePeer::TAS_UID, AppDelegationPeer::TAS_UID, Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
$arrayCondition = array();
$arrayCondition[] = array(AppAssignSelfServiceValuePeer::APP_UID, AppDelegationPeer::APP_UID, Criteria::EQUAL);
$arrayCondition[] = array(AppAssignSelfServiceValuePeer::DEL_INDEX, AppDelegationPeer::DEL_INDEX, Criteria::EQUAL);
$arrayCondition[] = array(AppAssignSelfServiceValuePeer::TAS_UID, AppDelegationPeer::TAS_UID, Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
$criteria->add(AppDelegationPeer::USR_UID, "", Criteria::EQUAL);
$criteria->add(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN", Criteria::EQUAL);
$criteria->add(AppAssignSelfServiceValuePeer::GRP_UID, $arrayGroup, Criteria::IN);
$criteria->add(AppDelegationPeer::USR_UID, "", Criteria::EQUAL);
$criteria->add(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN", Criteria::EQUAL);
$rsCriteria = AppAssignSelfServiceValuePeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$criterionAux = null;
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$arrayAppAssignSelfServiceValueData[] = array(
"APP_UID" => $row["APP_UID"],
"DEL_INDEX" => $row["DEL_INDEX"],
"TAS_UID" => $row["TAS_UID"]
);
foreach ($arrayUid as $value) {
if (is_null($criterionAux)) {
$criterionAux = $criteria->getNewCriterion(AppAssignSelfServiceValuePeer::GRP_UID, "%$value%", Criteria::LIKE);
} else {
$criterionAux = $criteria->getNewCriterion(AppAssignSelfServiceValuePeer::GRP_UID, "%$value%", Criteria::LIKE)->addOr($criterionAux);
}
}
$criteria->add($criterionAux);
$rsCriteria = AppAssignSelfServiceValuePeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$arrayAppAssignSelfServiceValueData[] = array(
"APP_UID" => $row["APP_UID"],
"DEL_INDEX" => $row["DEL_INDEX"],
"TAS_UID" => $row["TAS_UID"]
);
}
//Return
return $arrayAppAssignSelfServiceValueData;
} catch (Exception $e) {