Example #1
0
 function adhocAssignUsersk($params)
 {
     G::LoadClass('groups');
     G::LoadClass('tasks');
     $oTasks = new Tasks();
     $aAux = $oTasks->getGroupsOfTask($_SESSION['TASK'], 2);
     $aAdhocUsers = array();
     $oGroups = new Groups();
     foreach ($aAux as $aGroup) {
         $aUsers = $oGroups->getUsersOfGroup($aGroup['GRP_UID']);
         foreach ($aUsers as $aUser) {
             if ($aUser['USR_UID'] != $_SESSION['USER_LOGGED']) {
                 $aAdhocUsers[] = $aUser['USR_UID'];
             }
         }
     }
     $aAux = $oTasks->getUsersOfTask($_SESSION['TASK'], 2);
     foreach ($aAux as $aUser) {
         if ($aUser['USR_UID'] != $_SESSION['USER_LOGGED']) {
             $aAdhocUsers[] = $aUser['USR_UID'];
         }
     }
     require_once 'classes/model/Users.php';
     $oCriteria = new Criteria('workflow');
     $oCriteria->addSelectColumn(UsersPeer::USR_UID);
     $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
     $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
     $oCriteria->add(UsersPeer::USR_UID, $aAdhocUsers, Criteria::IN);
     $oDataset = UsersPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $aData = array();
     while ($oDataset->next()) {
         $aData[] = $oDataset->getRow();
     }
     $this->data = $aData;
 }
Example #2
0
 $APP_UIDS = explode(',', $_POST['APP_UIDS']);
 $sReassignFromUser = $_POST['FROM_USR_ID'];
 G::LoadClass('tasks');
 G::LoadClass('groups');
 G::LoadClass('case');
 $oTasks = new Tasks();
 $oGroups = new Groups();
 $oUser = new Users();
 $oCases = new Cases();
 $aCasesList = array();
 foreach ($APP_UIDS as $APP_UID) {
     $aCase = $oCases->loadCaseInCurrentDelegation($APP_UID, true);
     $aUsersInvolved = array();
     $aCaseGroups = $oTasks->getGroupsOfTask($aCase['TAS_UID'], 1);
     foreach ($aCaseGroups as $aCaseGroup) {
         $aCaseUsers = $oGroups->getUsersOfGroup($aCaseGroup['GRP_UID']);
         foreach ($aCaseUsers as $aCaseUser) {
             if ($aCaseUser['USR_UID'] != $sReassignFromUser) {
                 $aCaseUserRecord = $oUser->load($aCaseUser['USR_UID']);
                 $aUsersInvolved[$aCaseUser['USR_UID']] = $aCaseUserRecord['USR_FIRSTNAME'] . ' ' . $aCaseUserRecord['USR_LASTNAME'];
                 // . ' (' . $aCaseUserRecord['USR_USERNAME'] . ')';
             }
         }
     }
     $aCaseUsers = $oTasks->getUsersOfTask($aCase['TAS_UID'], 1);
     foreach ($aCaseUsers as $aCaseUser) {
         if ($aCaseUser['USR_UID'] != $sReassignFromUser) {
             $aCaseUserRecord = $oUser->load($aCaseUser['USR_UID']);
             $aUsersInvolved[$aCaseUser['USR_UID']] = $aCaseUserRecord['USR_FIRSTNAME'] . ' ' . $aCaseUserRecord['USR_LASTNAME'];
             // . ' (' . $aCaseUserRecord['USR_USERNAME'] . ')';
         }
Example #3
0
    function getGrpUser ($aData)

    {

        G::LoadClass( 'groups' );

        G::LoadClass( 'tasks' );

        require_once 'classes/model/Content.php';

        $oTasks = new Tasks();

        $oGroups = new Groups();

        $oContent = new Content();

        $aGroup = array ();

        $aUsers = array ();

        $aGroup = $oTasks->getGroupsOfTask( $aData['ROU_NEXT_TASK'], 1 );

        $aGrpUid = $aGroup[0]['GRP_UID'];

        $sGrpName = $oContent->load( 'GRP_TITLE', '', $aGrpUid, 'en' );

        $aGrp['GRP_NAME'] = $sGrpName;

        $aGrp['GRP_UID'] = $aGrpUid;

        $aUsers = $oGroups->getUsersOfGroup( $aGroup[0]['GRP_UID'] );

        foreach ($aUsers as $aKey => $userid) {

            $aData[$aKey] = $userid;

        }

        return $aGrp;

    }
Example #4
0
    public function getUsersToReassign($TAS_UID, $USR_UID, $PRO_UID=null)

    {

        G::LoadClass('groups');

        G::LoadClass('tasks');



        $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) {

                    $row[] = $aUser['USR_UID'];

                }

            }

        }



        $aAux = $oTasks->getUsersOfTask($TAS_UID, 1);

        foreach ($aAux as $aUser) {

            if ($aUser['USR_UID'] != $USR_UID) {

                $row[] = $aUser['USR_UID'];

            }

        }



        // Group Ad Hoc

        $oTasks = new Tasks();

        $aAux = $oTasks->getGroupsOfTask($TAS_UID, 2);

        $groups = new Groups();

        foreach ($aAux as $aGroup) {

            $aUsers = $groups->getUsersOfGroup($aGroup['GRP_UID']);

            foreach ($aUsers as $aUser) {

                if ($aUser['USR_UID'] != $USR_UID) {

                    $row[] = $aUser['USR_UID'];

                }

            }

        }



        // User Ad Hoc

        $aAux = $oTasks->getUsersOfTask($TAS_UID, 2);

        foreach ($aAux as $aUser) {

            if ($aUser['USR_UID'] != $USR_UID) {

                $row[] = $aUser['USR_UID'];

            }

        }



        global $RBAC;

        //Adding the actual user if this has the PM_SUPERVISOR permission assigned.

        if ($RBAC->userCanAccess('PM_SUPERVISOR') == 1) {

            if(!in_array($RBAC->aUserInfo['USER_INFO']['USR_UID'], $row)) {

                $row[] = $RBAC->aUserInfo['USER_INFO']['USR_UID'];

            }

        }



        $c = new Criteria('workflow');

        $c->addSelectColumn(UsersPeer::USR_UID);

        $c->addSelectColumn(UsersPeer::USR_USERNAME);

        $c->addSelectColumn(UsersPeer::USR_FIRSTNAME);

        $c->addSelectColumn(UsersPeer::USR_LASTNAME);

        $c->add(UsersPeer::USR_UID, $row, Criteria::IN);



        $rs = UsersPeer::doSelectRs($c);

        $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);



        $rows = Array();

        while ($rs->next()) {

            $rows[] = $rs->getRow();

        }



        if ($PRO_UID != null) {

            //Add supervisor

            // Users

            $oCriteria = new Criteria('workflow');

            $oCriteria->addSelectColumn(ProcessUserPeer::PU_UID);

            $oCriteria->addSelectColumn(ProcessUserPeer::USR_UID);

            $oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID);

            $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);

            $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);

            $oCriteria->addSelectColumn(UsersPeer::USR_USERNAME);

            $oCriteria->addSelectColumn(UsersPeer::USR_EMAIL);

            $oCriteria->addJoin(ProcessUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);

            $oCriteria->add(ProcessUserPeer::PU_TYPE, 'SUPERVISOR');

            $oCriteria->add(ProcessUserPeer::PRO_UID, $PRO_UID);

            $oCriteria->add(ProcessUserPeer::USR_UID, $USR_UID);

            $oCriteria->addAscendingOrderByColumn(UsersPeer::USR_FIRSTNAME);

            $oDataset = ProcessUserPeer::doSelectRS($oCriteria);

            $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);

            $flagSupervisors = false;



            if ($oDataset->next()) {

                if (!in_array($USR_UID,$row)) {

                        $rows[] = $oDataset->getRow();

                }

                $flagSupervisors = true;

            }



            if (!$flagSupervisors) {

                // Groups

                $oCriteria = new Criteria('workflow');

                $oCriteria->addSelectColumn(ProcessUserPeer::PU_UID);

                $oCriteria->addSelectColumn(ProcessUserPeer::USR_UID);

                $oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID);



                $oCriteria->addSelectColumn(UsersPeer::USR_UID);

                $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);

                $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);

                $oCriteria->addSelectColumn(UsersPeer::USR_USERNAME);

                $oCriteria->addSelectColumn(UsersPeer::USR_EMAIL);



                $oCriteria->addJoin(ProcessUserPeer::USR_UID, GroupUserPeer::GRP_UID, Criteria::LEFT_JOIN);

                $oCriteria->addJoin(GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);



                $oCriteria->add(ProcessUserPeer::PU_TYPE, 'GROUP_SUPERVISOR');

                $oCriteria->add(ProcessUserPeer::PRO_UID, $PRO_UID);

                $oCriteria->add(GroupUserPeer::USR_UID, $USR_UID);



                $oDataset = ProcessUserPeer::doSelectRS($oCriteria);

                $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);



                if ($oDataset->next()) {

                    if (!in_array($USR_UID,$row)) {

                        $rows[] = $oDataset->getRow();

                    }

                }

            }

        }



        return $rows;

    }
    /**
     * Send Message each user id
     *
     * @param array $request_data
     * @author Ronald Quenta <*****@*****.**>
     *
     */
    public function routeCaseNotification($currentUserId, $processId, $currentTaskId, $appFields, $aTasks, $nextIndex)
    {
        try {
            $oUser = new \Users();
            $aUser = $oUser->load( $currentUserId );

            $response = array();
            $task = new \Tasks();
            $group = new \Groups();
            foreach ($aTasks as $aTask) {
                $arrayTaskUser = array();
                switch ($aTask["TAS_ASSIGN_TYPE"]) {
                    case "SELF_SERVICE":
                        if (isset($aTask["TAS_UID"]) && !empty($aTask["TAS_UID"])) {
                            $arrayAux1 = $task->getGroupsOfTask($aTask["TAS_UID"], 1);
                            foreach ($arrayAux1 as $arrayGroup) {
                                $arrayAux2 = $group->getUsersOfGroup($arrayGroup["GRP_UID"]);
                                foreach ($arrayAux2 as $arrayUser) {
                                    $arrayTaskUser[] = $arrayUser["USR_UID"];
                                }
                            }
                            $arrayAux1 = $task->getUsersOfTask($aTask["TAS_UID"], 1);

                            foreach ($arrayAux1 as $arrayUser) {
                                $arrayTaskUser[] = $arrayUser["USR_UID"];
                            }
                        }
                        break;
                    default:
                        if (isset($aTask["USR_UID"]) && !empty($aTask["USR_UID"])) {
                            $arrayTaskUser = $aTask["USR_UID"];
                        }
                        break;
                }

//                $oTask = new \Task();
//                $currentTask = $oTask->load($aTask['TAS_UID']);
                $delIndex = null;
                foreach ($nextIndex as $nIndex) {
                    if($aTask['TAS_UID'] == $nIndex['TAS_UID']){
                        $delIndex = $nIndex['DEL_INDEX'];
                        break;
                    }
                }

                $userIds = $arrayTaskUser;
                $message = '#'. $appFields['APP_NUMBER'] . ' : '.$appFields['APP_TITLE'];
                $data = array(
                    'processId' => $processId,
                    'taskId' => $aTask["TAS_UID"],
                    'caseId' => $appFields['APP_UID'],
                    'caseTitle' => $appFields['APP_TITLE'],
                    'delIndex' => $delIndex,
                    'typeList' => 'todo'
                );

                if ($userIds) {

                    $oNoti = new \NotificationDevice();
                    $devices = array();
                    if (is_array($userIds)){
                        foreach ($userIds as $id) {
                            $deviceUser = $oNoti->loadByUsersId($id);
                            $devices = array_merge($devices, $deviceUser);
                        }
                    } else {
                        $devices = $oNoti->loadByUsersId($userIds);
                        $lists   = new \ProcessMaker\BusinessModel\Lists();
                        $counter = $lists->getCounters($userIds);
                        $light   = new \ProcessMaker\Services\Api\Light();
                        $result  = $light->parserCountersCases($counter);
                        $data['counters'] = $result;
                    }

                    $devicesAndroidIds = array();
                    $devicesAppleIds = array();
                    foreach ($devices as $dev) {
                        switch ($dev['DEV_TYPE']) {
                            case "apple":
                                $devicesAppleIds[] = $dev['DEV_REG_ID'];
                                break;
                            case "android":
                                $devicesAndroidIds[] = $dev['DEV_REG_ID'];
                                break;
                        }
                    }
                    if (count($devicesAppleIds) > 0) {
                        $oNotification = new PushMessageIOS();
                        $oNotification->setSettingNotification();
                        $oNotification->setDevices($devicesAppleIds);
                        $response['apple'] = $oNotification->send($message, $data);
                    }
                    if (count($devicesAndroidIds) > 0) {
                        $oNotification = new PushMessageAndroid();
                        $oNotification->setSettingNotification();
                        $oNotification->setDevices($devicesAndroidIds);
                        $response['android'] = $oNotification->send($message, $data);
                    }
                }
            }
        } catch (\Exception $e) {
            throw new \Exception(\Api::STAT_APP_EXCEPTION, $e->getMessage());
        }
        return $response;
    }
 public function getExtusersadhoc($start, $limit, $sProcessUID = '', $sTaskUID = '')
 {
     try {
         $oProcess = new Process();
         $aFields = $oProcess->load($sProcessUID);
         $oTask = new Task();
         $aFields = $oTask->load($sTaskUID);
         $_SESSION['iType'] = 2;
         $aFields['TASK'] = $sTaskUID;
         $aFields['TYPE'] = $_SESSION['iType'];
         $aFields['OF_TO_ASSIGN'] = G::LoadTranslation('ID_DE_ASSIGN');
         $aFields['CONFIRM'] = G::LoadTranslation('ID_MSG_CONFIRM_DEASIGN_USER_GROUP_MESSAGE');
         $aFields['UIDS'] = "'0'";
         $oTasks = new Tasks();
         $oGroups = new Groups();
         $aAux1 = $oTasks->getGroupsOfTask($sTaskUID, $_SESSION['iType']);
         foreach ($aAux1 as $aGroup) {
             $aAux2 = $oGroups->getUsersOfGroup($aGroup['GRP_UID']);
             foreach ($aAux2 as $aUser) {
                 $aFields['UIDS'] .= ",'" . $aUser['USR_UID'] . "'";
             }
         }
         global $G_PUBLISH;
         $G_PUBLISH = new Publisher();
         $oTask = new Task();
         $aTask = $oTask->load($sTaskUID);
         //$assignedUsers = getExtTaskUsersCriteria($sTaskUID, $_SESSION ['iType']);
         $this->getExtTaskUsersAdHocCriteria($start, $limit, $sTaskUID, $_SESSION['iType']);
         return $_SESSION['_DBArray']['taskUsers'];
     } catch (Exception $oError) {
         throw $oError;
     }
 }
Example #7
0
 public function getUsersToReassign($TAS_UID, $USR_UID)
 {
     G::LoadClass('groups');
     G::LoadClass('tasks');
     $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) {
                 $row[] = $aUser['USR_UID'];
             }
         }
     }
     $aAux = $oTasks->getUsersOfTask($TAS_UID, 1);
     foreach ($aAux as $aUser) {
         if ($aUser['USR_UID'] != $USR_UID) {
             $row[] = $aUser['USR_UID'];
         }
     }
     $aAux = $oTasks->getUsersOfTask($TAS_UID, 2);
     foreach ($aAux as $aUser) {
         if ($aUser['USR_UID'] != $USR_UID) {
             $row[] = $aUser['USR_UID'];
         }
     }
     require_once 'classes/model/Users.php';
     $c = new Criteria('workflow');
     $c->addSelectColumn(UsersPeer::USR_UID);
     $c->addSelectColumn(UsersPeer::USR_USERNAME);
     $c->addSelectColumn(UsersPeer::USR_FIRSTNAME);
     $c->addSelectColumn(UsersPeer::USR_LASTNAME);
     $c->add(UsersPeer::USR_UID, $row, Criteria::IN);
     $rs = UsersPeer::doSelectRs($c);
     $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $rows = array();
     while ($rs->next()) {
         $rows[] = $rs->getRow();
     }
     return $rows;
 }
Example #8
0
 public function uxGroupUpdate($httpData)
 {
     G::LoadClass('groups');
     $groups = new Groups();
     $users = $groups->getUsersOfGroup($httpData->GRP_UID);
     $success = true;
     $usersAdmin = '';
     foreach ($users as $user) {
         if ($user['USR_ROLE'] == 'PROCESSMAKER_ADMIN' && ($httpData->GRP_UX == 'SIMPLIFIED' || $httpData->GRP_UX == 'SINGLE')) {
             $success = false;
             $usersAdmin .= $user['USR_FIRSTNAME'] . ' ' . $user['USR_LASTNAME'] . ', ';
         }
     }
     if ($success) {
         $group = GroupwfPeer::retrieveByPK($httpData->GRP_UID);
         $group->setGrpUx($httpData->GRP_UX);
         $group->save();
     }
     return array('success' => $success, 'users' => $usersAdmin);
 }
Example #9
0
     echo '<div align="center"><h2><font color="blue">' . G::LoadTranslation('ID_MSG_ASSIGN_DONE') . '</font></h2></div>';
     break;
 case 'usersGroup':
     G::LoadClass('groups');
     $oGroup = new Groups();
     $aGroup = $oGroup->getUsersOfGroup($_POST['GRP_UID']);
     foreach ($aGroup as $iIndex => $aValues) {
         echo $aValues['USR_FIRSTNAME'] . ' ' . $aValues['USR_LASTNAME'] . '<br>';
     }
     break;
     //This case is used to check if any of the user group has as role 'PROCESSMAKER_ADMIN',
 //This case is used to check if any of the user group has as role 'PROCESSMAKER_ADMIN',
 case 'usersAdminGroupExtJS':
     G::LoadClass('groups');
     $oGroup = new Groups();
     $aGroup = $oGroup->getUsersOfGroup($_POST['GRP_UID']);
     $responseUser = '******';
     $usersAdmin = '';
     foreach ($aGroup as $iIndex => $aValues) {
         if ($aValues['USR_ROLE'] == 'PROCESSMAKER_ADMIN') {
             $responseUser = '******';
             $usersAdmin .= $aValues['USR_FIRSTNAME'] . ' ' . $aValues['USR_LASTNAME'] . ', ';
         }
     }
     $usersAdmin = substr($usersAdmin, 0, -2);
     $result = new stdClass();
     $result->reponse = $responseUser;
     $result->users = $usersAdmin;
     echo G::json_encode($result);
     break;
 case 'canDeleteUser':
 }
 G::header('location: users_Delete?USR_UID=' . $USR_UID);
 $oDataset = ApplicationPeer::doSelectRS($oCriteriaToDo);
 $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
 $oDataset->next();
 while ($aRow = $oDataset->getRow()) {
     $c++;
     $oTemplatePower->newBlock('cases');
     $aKeys = array_keys($aRow);
     foreach ($aKeys as $sKey) {
         $oTemplatePower->assign($sKey, $aRow[$sKey]);
     }
     $aUsers = array($_GET['USR_UID']);
     $aAux1 = $oTasks->getGroupsOfTask($aRow['TAS_UID'], 1);
     foreach ($aAux1 as $aGroup) {
         $aAux2 = $oGroups->getUsersOfGroup($aGroup['GRP_UID']);
         foreach ($aAux2 as $aUser) {
             if (!in_array($aUser['USR_UID'], $aUsers)) {
                 $aUsers[] = $aUser['USR_UID'];
                 $aData = $oUser->load($aUser['USR_UID']);
                 $oTemplatePower->newBlock('users');
                 $oTemplatePower->assign('USR_UID', $aUser['USR_UID']);
                 $oTemplatePower->assign('USR_FULLNAME', $aData['USR_FIRSTNAME'] . ' ' . $aData['USR_LASTNAME'] . ' (' . $aData['USR_USERNAME'] . ')');
             }
         }
     }
     $aAux1 = $oTasks->getUsersOfTask($aRow['TAS_UID'], 1);
     foreach ($aAux1 as $aUser) {
         if (!in_array($aUser['USR_UID'], $aUsers)) {
             $aUsers[] = $aUser['USR_UID'];
             $aData = $oUser->load($aUser['USR_UID']);
Example #11
0
 $oDataset->next();
 $c = 0;
 G::LoadClass('tasks');
 $oTasks = new Tasks();
 G::LoadClass('groups');
 $oGroups = new Groups();
 require_once 'classes/model/Users.php';
 $oUser = new Users();
 $name = '';
 while ($aRow = $oDataset->getRow()) {
     $c++;
     $aUsr = array();
     $aUsrUid = array();
     $aAux1 = $oTasks->getGroupsOfTask($aRow['TAS_UID'], 1);
     foreach ($aAux1 as $value1) {
         $aAux2 = $oGroups->getUsersOfGroup($value1['GRP_UID']);
         foreach ($aAux2 as $value2) {
             if ($aRow['USR_UID'] != $value2['USR_UID']) {
                 if (!in_array($value2['USR_UID'], $aUsrUid)) {
                     //var_dump($aRow['USR_UID'], $value2['USR_UID']);echo '<br /><br />';
                     $aAux = $oUser->load($value2['USR_UID']);
                     $aUsr[$aAux['USR_FIRSTNAME'] . ' ' . $aAux['USR_LASTNAME']] = $aAux;
                     $aUsrUid[] = $value2['USR_UID'];
                 }
             }
         }
     }
     $aUsers = $oTasks->getUsersOfTask($aRow['TAS_UID'], 1);
     foreach ($aUsers as $key => $value) {
         if ($aRow['USR_UID'] != $value['USR_UID']) {
             if (!in_array($value['USR_UID'], $aUsrUid)) {
 public function getTaskUserSelfService($tas_uid, $appFields)
 {
     $oTask = new \Tasks();
     $oGroup = new \Groups();
     $taskNextDel = \TaskPeer::retrieveByPK($tas_uid);
     $arrayTaskUser = array();
     if ($taskNextDel->getTasAssignType() == "SELF_SERVICE" && trim($taskNextDel->getTasGroupVariable()) != "") {
         // Self Service Value Based Assignment
         $nextTaskGroupVariable = trim($taskNextDel->getTasGroupVariable(), " @#");
         if (isset($appFields["APP_DATA"][$nextTaskGroupVariable])) {
             $dataGroupVariable = $appFields["APP_DATA"][$nextTaskGroupVariable];
             $dataGroupVariable = is_array($dataGroupVariable) ? $dataGroupVariable : trim($dataGroupVariable);
             if (!empty($dataGroupVariable) && is_array($dataGroupVariable)) {
                 $arrayTaskUser[] = $dataGroupVariable;
             } elseif (!empty($dataGroupVariable)) {
                 $arrayUsersOfGroup = $oGroup->getUsersOfGroup($dataGroupVariable);
                 foreach ($arrayUsersOfGroup as $arrayUser) {
                     $arrayTaskUser[] = $arrayUser["USR_UID"];
                 }
             }
         }
     } else {
         // Self Service
         $arrayGroupsOfTask = $oTask->getGroupsOfTask($tas_uid, 1);
         foreach ($arrayGroupsOfTask as $arrayGroup) {
             $arrayUsersOfGroup = $oGroup->getUsersOfGroup($arrayGroup["GRP_UID"]);
             foreach ($arrayUsersOfGroup as $arrayUser) {
                 $arrayTaskUser[] = $arrayUser["USR_UID"];
             }
         }
         $arrayUsersOfTask = $oTask->getUsersOfTask($tas_uid, 1);
         foreach ($arrayUsersOfTask as $arrayUser) {
             $arrayTaskUser[] = $arrayUser["USR_UID"];
         }
     }
     return $arrayTaskUser;
 }