Example #1
0
 /**
  * Get the email accounts of the current workspace
  *     
  * return array
  */
 public function getEmailEventAccounts()
 {
     try {
         $criteria = new \Criteria("workflow");
         $criteria->clearSelectColumns();
         $criteria->addSelectColumn(\UsersPeer::USR_UID);
         $criteria->addSelectColumn(\UsersPeer::USR_EMAIL);
         $criteria->addAsColumn('UID', 'USR_UID');
         $criteria->addAsColumn('EMAIL', 'USR_EMAIL');
         $criteria->add(\UsersPeer::USR_STATUS, "ACTIVE");
         $result = \UsersPeer::doSelectRS($criteria);
         $result->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         $result->next();
         $accountsArray = array();
         while ($aRow = $result->getRow()) {
             if (($aRow['USR_EMAIL'] != null) || ($aRow['USR_EMAIL'] != "")) {
                 $accountsArray[] = array_change_key_case($aRow, CASE_LOWER);
             } 
             $result->next();
         }
         return $accountsArray;
     } catch (\Exception $e) {
         throw $e;
     }
 }
Example #2
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 #3
0
 /**
   function executed by the cron
   this function will synchronize users from ldap/active directory to PM users tables
   @return void
 */
 public function executeCron($debug)
 {
     $rbac =& RBAC::getSingleton();
     if (is_null($rbac->authSourcesObj)) {
         $rbac->authSourcesObj = new AuthenticationSource();
     }
     $plugin = new ldapAdvanced();
     $plugin->sSystem = $rbac->sSystem;
     $plugin->setFrontEnd(true);
     $plugin->setDebug($debug);
     //Get all authsource for this plugin ( ldapAdvanced plugin, because other authsources are not needed )
     $arrayAuthenticationSource = $plugin->getAuthSources();
     $aDepartments = $plugin->getDepartments("");
     $aGroups = $plugin->getGroups();
     //$arrayDepartmentUserAd = array(); //(D) Update Users
     //$arrayGroupUserAd = array(); //(G) Update Users
     //echo "\n";
     $plugin->frontEndShow("START");
     $plugin->debugLog("START");
     foreach ($arrayAuthenticationSource as $value) {
         $arrayAuthenticationSourceData = $value;
         $plugin->debugLog("ldapadvanced.php > function executeCron() > foreach > \$arrayAuthenticationSourceData ---->\n" . print_r($arrayAuthenticationSourceData, true));
         $plugin->sAuthSource = $arrayAuthenticationSourceData["AUTH_SOURCE_UID"];
         $plugin->ldapcnn = null;
         $plugin->setArrayDepartmentUserSynchronizedChecked(array());
         $plugin->setArrayUserUpdateChecked(array());
         //Get all User (USR_UID, USR_USERNAME, USR_AUTH_USER_DN) registered in RBAC with this Authentication Source
         $plugin->setArrayAuthenticationSourceUsers($arrayAuthenticationSourceData["AUTH_SOURCE_UID"]);
         //INITIALIZE DATA
         $plugin->frontEndShow("TEXT", "Authentication Source: " . $arrayAuthenticationSourceData["AUTH_SOURCE_NAME"]);
         $plugin->log(null, "Executing cron for Authentication Source: " . $arrayAuthenticationSourceData["AUTH_SOURCE_NAME"]);
         //Get all departments from Ldap/ActiveDirectory and build a hierarchy using dn (ou->ou parent)
         $aLdapDepts = $plugin->searchDepartments();
         //Obtain all departments from PM with a valid department in LDAP/ActiveDirectory
         $aRegisteredDepts = $plugin->getRegisteredDepartments($aLdapDepts, $aDepartments);
         $plugin->debugLog("ldapadvanced.php > function executeCron() > foreach > \$aRegisteredDepts ---->\n" . print_r($aRegisteredDepts, true));
         //Get all group from Ldap/ActiveDirectory
         $aLdapGroups = $plugin->searchGroups();
         //Obtain all groups from PM with a valid group in LDAP/ActiveDirectory
         $aRegisteredGroups = $plugin->getRegisteredGroups($aLdapGroups, $aGroups);
         $plugin->debugLog("ldapadvanced.php > function executeCron() > foreach > \$aRegisteredGroups ---->\n" . print_r($aRegisteredGroups, true));
         //Get all users from Removed OU
         $this->usersRemovedOu = $plugin->getUsersFromRemovedOu($arrayAuthenticationSourceData);
         $plugin->deactiveArrayOfUsers($this->usersRemovedOu);
         //Variables
         $this->deletedRemoved = count($this->usersRemovedOu);
         $this->deletedRemovedUsers = "";
         $this->dAlready = 0;
         $this->dMoved = 0;
         $this->dImpossible = 0;
         $this->dCreated = 0;
         $this->dRemoved = 0;
         $this->dAlreadyUsers = "";
         $this->dMovedUsers = "";
         $this->dImpossibleUsers = "";
         $this->dCreatedUsers = "";
         $this->dRemovedUsers = "";
         $this->gAlready = 0;
         $this->gMoved = 0;
         $this->gImpossible = 0;
         $this->gCreated = 0;
         $this->gRemoved = 0;
         $this->gAlreadyUsers = "";
         $this->gMovedUsers = "";
         $this->gImpossibleUsers = "";
         $this->gCreatedUsers = "";
         $this->gRemovedUsers = "";
         //Department - Synchronize Users
         $numDepartments = count($aRegisteredDepts);
         $count = 0;
         $plugin->debugLog("ldapadvanced.php > function executeCron() > foreach > \$numDepartments ----> {$numDepartments}");
         foreach ($aRegisteredDepts as $registeredDept) {
             $count++;
             //(D) Update Users
             //if (!isset($arrayDepartmentUserAd[$registeredDept["DEP_UID"]])) {
             //    $arrayDepartmentUserAd[$registeredDept["DEP_UID"]] = array(); //Current users in department based in Active Directory
             //}
             //
             //$arrayAux = $this->departmentSynchronizeUsers($plugin, $numDepartments, $count, $registeredDept);
             //$arrayAux = array_merge($arrayDepartmentUserAd[$registeredDept["DEP_UID"]], $arrayAux);
             //
             //$arrayDepartmentUserAd[$registeredDept["DEP_UID"]] = array_unique($arrayAux);
             $arrayAux = $this->departmentSynchronizeUsers($plugin, $numDepartments, $count, $registeredDept);
         }
         //Department - Print log
         $logResults = sprintf("- Departments -> Existing users: %d, moved: %d, impossible: %d, created: %d, removed: %d", $this->dAlready, $this->dMoved, $this->dImpossible, $this->dCreated, $this->dRemoved);
         $plugin->frontEndShow("TEXT", $logResults);
         $plugin->log(null, $logResults);
         //Group - Synchronize Users
         $numGroups = count($aRegisteredGroups);
         $count = 0;
         $plugin->debugLog("ldapadvanced.php > function executeCron() > foreach > \$numGroups ----> {$numGroups}");
         foreach ($aRegisteredGroups as $registeredGroup) {
             $count++;
             //(G) Update Users
             //if (!isset($arrayGroupUserAd[$registeredGroup["GRP_UID"]])) {
             //    $arrayGroupUserAd[$registeredGroup["GRP_UID"]] = array(); //Current users in group based in Active Directory
             //}
             //
             //$arrayAux = $this->groupSynchronizeUsers($plugin, $numGroups, $count, $registeredGroup);
             //$arrayAux = array_merge($arrayGroupUserAd[$registeredGroup["GRP_UID"]], $arrayAux);
             //
             //$arrayGroupUserAd[$registeredGroup["GRP_UID"]] = array_unique($arrayAux);
             $arrayAux = $this->groupSynchronizeUsers($plugin, $numGroups, $count, $registeredGroup);
         }
         //Group - Print log
         $logResults = sprintf("- Groups -> Existing users: %d, moved: %d, impossible: %d, created: %d, removed: %d", $this->gAlready, $this->gMoved, $this->gImpossible, $this->gCreated, $this->gRemoved);
         $plugin->frontEndShow("TEXT", $logResults);
         $plugin->log(null, $logResults);
         //Manager
         $plugin->clearManager($this->managersToClear);
         if (isset($arrayAuthenticationSourceData["AUTH_SOURCE_DATA"]["DEPARTMENTS_TO_UNASSIGN"])) {
             if (is_array($arrayAuthenticationSourceData["AUTH_SOURCE_DATA"]["DEPARTMENTS_TO_UNASSIGN"])) {
                 foreach ($arrayAuthenticationSourceData["AUTH_SOURCE_DATA"]["DEPARTMENTS_TO_UNASSIGN"] as $departmentUID) {
                     // Delete manager assignments
                     $criteriaSet = new Criteria("workflow");
                     $criteriaSet->add(UsersPeer::USR_REPORTS_TO, "");
                     $criteriaWhere = new Criteria("workflow");
                     $criteriaWhere->add(UsersPeer::DEP_UID, $departmentUID);
                     $criteriaWhere->add(UsersPeer::USR_REPORTS_TO, "", Criteria::NOT_EQUAL);
                     $this->deletedManager = BasePeer::doUpdate($criteriaWhere, $criteriaSet, Propel::getConnection("workflow"));
                     // Delete department assignments
                     $criteriaSet = new Criteria("workflow");
                     $criteriaSet->add(UsersPeer::DEP_UID, "");
                     $criteriaWhere = new Criteria("workflow");
                     $criteriaWhere->add(UsersPeer::DEP_UID, $departmentUID);
                     $this->dMoved += UsersPeer::doCount($criteriaWhere);
                     BasePeer::doUpdate($criteriaWhere, $criteriaSet, Propel::getConnection("workflow"));
                 }
             }
             unset($arrayAuthenticationSourceData["AUTH_SOURCE_DATA"]["DEPARTMENTS_TO_UNASSIGN"]);
             $rbac =& RBAC::getSingleton();
             $rbac->authSourcesObj->update($arrayAuthenticationSourceData);
         }
         if (isset($arrayAuthenticationSourceData["AUTH_SOURCE_DATA"]["GROUPS_TO_UNASSIGN"])) {
             if (is_array($arrayAuthenticationSourceData["AUTH_SOURCE_DATA"]["GROUPS_TO_UNASSIGN"])) {
                 foreach ($arrayAuthenticationSourceData["AUTH_SOURCE_DATA"]["GROUPS_TO_UNASSIGN"] as $groupUID) {
                     // Delete manager assignments
                     $groupsInstance = new Groups();
                     $criteria = $groupsInstance->getUsersGroupCriteria($groupUID);
                     $dataset = UsersPeer::doSelectRS($criteria);
                     $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
                     $dataset->next();
                     $users = array();
                     while ($row = $dataset->getRow()) {
                         $users[] = $row["USR_UID"];
                         $dataset->next();
                     }
                     $criteriaSet = new Criteria("workflow");
                     $criteriaSet->add(UsersPeer::USR_REPORTS_TO, "");
                     $criteriaWhere = new Criteria("workflow");
                     $criteriaWhere->add(UsersPeer::USR_UID, $users, Criteria::IN);
                     $criteriaWhere->add(UsersPeer::USR_REPORTS_TO, "", Criteria::NOT_EQUAL);
                     $this->deletedManager = BasePeer::doUpdate($criteriaWhere, $criteriaSet, Propel::getConnection("workflow"));
                     // Delete group assignments
                     $criteria = new Criteria("workflow");
                     $criteria->add(GroupUserPeer::GRP_UID, $groupUID);
                     $this->gMoved += GroupUserPeer::doCount($criteria);
                     BasePeer::doDelete($criteria, Propel::getConnection("workflow"));
                 }
             }
             unset($arrayAuthenticationSourceData["AUTH_SOURCE_DATA"]["GROUPS_TO_UNASSIGN"]);
             $rbac =& RBAC::getSingleton();
             $rbac->authSourcesObj->update($arrayAuthenticationSourceData);
         }
         // Delete the managers that not exists in PM
         $criteria = new Criteria("rbac");
         $criteria->addSelectColumn(RbacUsersPeer::USR_AUTH_USER_DN);
         $criteria->add(RbacUsersPeer::USR_AUTH_USER_DN, "", Criteria::NOT_EQUAL);
         $dataset = RbacUsersPeer::doSelectRS($criteria);
         $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $dataset->next();
         $existingUsers = array();
         while ($row = $dataset->getRow()) {
             $existingUsers[] = $row["USR_AUTH_USER_DN"];
             $dataset->next();
         }
         foreach ($this->managersHierarchy as $managerDN => $subordinates) {
             if (!in_array($managerDN, $existingUsers)) {
                 unset($this->managersHierarchy[$managerDN]);
             }
         }
         // Get the managers assigments counters
         $plugin->synchronizeManagers($this->managersHierarchy);
         $deletedManagersAssignments = self::array_diff_assoc_recursive($this->oldManagersHierarchy, $this->managersHierarchy);
         $newManagersAssignments = self::array_diff_assoc_recursive($this->managersHierarchy, $this->oldManagersHierarchy);
         $deletedManagers = array();
         $newManagers = array();
         $movedManagers = array();
         if (is_array($deletedManagersAssignments)) {
             foreach ($deletedManagersAssignments as $dn1 => $subordinates1) {
                 foreach ($subordinates1 as $subordinate) {
                     if (!in_array($subordinate, $deletedManagers)) {
                         $deletedManagers[] = $subordinate;
                     }
                     foreach ($newManagersAssignments as $dn2 => $subordinates2) {
                         if (isset($subordinates2[$subordinate])) {
                             $movedManagers[] = $subordinate;
                         }
                     }
                 }
             }
         }
         if (is_array($newManagersAssignments)) {
             foreach ($newManagersAssignments as $dn1 => $subordinates1) {
                 foreach ($subordinates1 as $subordinate) {
                     if (!in_array($subordinate, $newManagers)) {
                         $newManagers[] = $subordinate;
                     }
                     foreach ($deletedManagersAssignments as $dn2 => $subordinates2) {
                         if (isset($subordinates2[$subordinate])) {
                             if (!in_array($subordinate, $movedManagers)) {
                                 $movedManagers[] = $subordinate;
                             }
                         }
                     }
                 }
             }
         }
         //Print and log the users's information
         //Deleted/Removed Users
         $logResults = sprintf("- Deleted/Removed Users: %d", $this->deletedRemoved);
         $plugin->frontEndShow("TEXT", $logResults);
         $plugin->log(null, $logResults);
         if ($this->deletedRemoved > 0) {
             $plugin->log(null, "Deleted/Removed Users: ");
             $plugin->log(null, $this->deletedRemovedUsers);
         }
         if ($this->dAlready + $this->gAlready > 0) {
             $plugin->log(null, "Existing Users: ");
             $plugin->log(null, $this->dAlreadyUsers . " " . $this->gAlreadyUsers);
         }
         if ($this->dMoved + $this->gMoved > 0) {
             $plugin->log(null, "Moved Users: ");
             $plugin->log(null, $this->dMovedUsers . " " . $this->gMovedUsers);
         }
         if ($this->dImpossible + $this->gImpossible > 0) {
             $plugin->log(null, "Impossible Users: ");
             $plugin->log(null, $this->dImpossibleUsers . " " . $this->gImpossibleUsers);
         }
         if ($this->dCreated + $this->gCreated > 0) {
             $plugin->log(null, "Created Users: ");
             $plugin->log(null, $this->dCreatedUsers . " " . $this->gCreatedUsers);
         }
         if ($this->dRemoved + $this->gRemoved > 0) {
             $plugin->log(null, "Removed Users: ");
             $plugin->log(null, $this->dRemovedUsers . " " . $this->gRemovedUsers);
         }
         //Print and log the managers assignments"s information
         $logResults = sprintf("- Managers assignments: created %d, moved %d, removed %d", count($newManagers) - count($movedManagers), count($movedManagers), count($deletedManagers) - count($movedManagers) + $this->deletedManager);
         $plugin->frontEndShow("TEXT", $logResults);
         $plugin->log(null, $logResults);
         //Update Users data based on the LDAP Server
         $plugin->usersUpdateData($arrayAuthenticationSourceData["AUTH_SOURCE_UID"]);
     }
     $plugin->frontEndShow("END");
     //(D) Update Users
     ////Department //Upgrade users in departments
     //foreach ($arrayDepartmentUserAd as $departmentUid => $arrayUserAd) {
     //    $plugin->setArrayDepartmentUsers($departmentUid); //INITIALIZE DATA
     //
     //    $arrayAux = array_diff(array_keys($plugin->arrayDepartmentUsersByUid), $arrayUserAd);
     //
     //    $this->departmentRemoveUsers($departmentUid, $arrayAux);
     //}
     //(G) Update Users
     ////Group //Upgrade users in groups
     //foreach ($arrayGroupUserAd as $groupUid => $arrayUserAd) {
     //    $plugin->setArrayGroupUsers($groupUid); //INITIALIZE DATA
     //
     //    $arrayAux = array_diff(array_keys($plugin->arrayGroupUsersByUid), $arrayUserAd);
     //
     //    $this->groupRemoveUsers($groupUid, $arrayAux);
     //}
     //// Developed by Gary and Ronald
     //$usersInfo = $plugin->ASUpdateInfo('');
     //if (isset($usersInfo) && $usersInfo > 0) {
     //    $this->dMoved = $usersInfo;
     //}
     //// End Developed by Gary and Ronald
     $plugin->debugLog("END");
 }
Example #4
0
 /**
  * Return a list of adhoc assignees of an activity
  *
  * @param string $sProcessUID {@min 32} {@max 32}
  * @param string $sTaskUID {@min 32} {@max 32}
  * @param string $filter
  * @param int    $start
  * @param int    $limit
  * @param string $type
  *
  * return array
  *
  * @access public
  */
 public function getTaskAdhocAssigneesAll($sProcessUID, $sTaskUID, $filter, $start, $limit, $type)
 {
     try {
         Validator::proUid($sProcessUID, '$prj_uid');
         $this->validateActUid($sTaskUID);
         $aUsers = array();
         $oTasks = new \Tasks();
         $aAux = $oTasks->getGroupsOfTask($sTaskUID, 2);
         $aGroupUids = array();
         foreach ($aAux as $aGroup) {
             $aGroupUids[] = $aGroup['GRP_UID'];
         }
         foreach ($aGroupUids as $results) {
             $oCriteria = new \Criteria('workflow');
             $oCriteria->addSelectColumn('USR_UID');
             $oCriteria->add(\GroupUserPeer::GRP_UID, $results);
             $oGroupDataset = \GroupUserPeer::doSelectRS($oCriteria);
             $oGroupDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
             while ($oGroupDataset->next()) {
                 $aGroupRow = $oGroupDataset->getRow();
                 $oGroupCriteria = new \Criteria('workflow');
                 $oGroupCriteria->addSelectColumn(\UsersPeer::USR_UID);
                 $oGroupCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
                 $oGroupCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
                 $oGroupCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
                 if ($filter != '') {
                     $oGroupCriteria->add($oGroupCriteria->getNewCriterion(\UsersPeer::USR_USERNAME, "%{$filter}%", \Criteria::LIKE)->addOr($oGroupCriteria->getNewCriterion(\UsersPeer::USR_FIRSTNAME, "%{$filter}%", \Criteria::LIKE))->addOr($oGroupCriteria->getNewCriterion(\UsersPeer::USR_LASTNAME, "%{$filter}%", \Criteria::LIKE)));
                 }
                 $oGroupCriteria->add(\UsersPeer::USR_UID, $aGroupRow["USR_UID"]);
                 $oUserDataset = \UsersPeer::doSelectRS($oGroupCriteria);
                 $oUserDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
                 $oUserDataset->next();
                 while ($aUserRow = $oUserDataset->getRow()) {
                     $aUsers[] = array('aas_uid' => $aUserRow['USR_UID'], 'aas_name' => $aUserRow['USR_FIRSTNAME'], 'aas_lastname' => $aUserRow['USR_LASTNAME'], 'aas_username' => $aUserRow['USR_USERNAME'], 'aas_type' => "user");
                     $oUserDataset->next();
                 }
             }
         }
         $oCriteria = new \Criteria('workflow');
         $oCriteria->addSelectColumn(\UsersPeer::USR_UID);
         $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
         $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
         $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
         if ($filter != '') {
             $oCriteria->add($oCriteria->getNewCriterion(\UsersPeer::USR_USERNAME, "%{$filter}%", \Criteria::LIKE)->addOr($oCriteria->getNewCriterion(\UsersPeer::USR_FIRSTNAME, "%{$filter}%", \Criteria::LIKE))->addOr($oCriteria->getNewCriterion(\UsersPeer::USR_LASTNAME, "%{$filter}%", \Criteria::LIKE)));
         }
         $oCriteria->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN);
         $oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID);
         $oCriteria->add(\TaskUserPeer::TU_TYPE, 2);
         $oCriteria->add(\TaskUserPeer::TU_RELATION, 1);
         $oDataset = \TaskUserPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         while ($aRow = $oDataset->getRow()) {
             if ($type == '' || $type == 'user') {
                 $aUsers[] = array('aas_uid' => $aRow['USR_UID'], 'aas_name' => $aRow['USR_FIRSTNAME'], 'aas_lastname' => $aRow['USR_LASTNAME'], 'aas_username' => $aRow['USR_USERNAME'], 'aas_type' => "user");
             }
             $oDataset->next();
         }
         $aUsersGroups = array();
         $exclude = array("");
         for ($i = 0; $i <= count($aUsers) - 1; $i++) {
             if (!in_array(trim($aUsers[$i]["aas_uid"]), $exclude)) {
                 $aUsersGroups[] = $aUsers[$i];
                 $exclude[] = trim($aUsers[$i]["aas_uid"]);
             }
         }
         if ($start) {
             if ($start < 0) {
                 throw new \Exception(\G::LoadTranslation("ID_INVALID_START"));
             }
         } else {
             $start = 0;
         }
         if (isset($limit)) {
             if ($limit < 0) {
                 throw new \Exception(\G::LoadTranslation("ID_INVALID_LIMIT"));
             } else {
                 if ($limit == 0) {
                     return array();
                 }
             }
         } else {
             $limit = count($aUsersGroups) + 1;
         }
         $aUsersGroups = $this->arrayPagination($aUsersGroups, $start, $limit);
         return $aUsersGroups;
     } catch (\Exception $e) {
         throw $e;
     }
 }
Example #5
0
    public function newRow ($data, $delPreviusUsrUid, $isInitSubprocess = false, $dataPreviusApplication = array(), $isSelfService = false)
    {
        $removeList = true;
        if (isset($data['REMOVED_LIST'])) {
            $removeList = $data['REMOVED_LIST'];
            unset($data['REMOVED_LIST']);
        }
        $data['DEL_PREVIOUS_USR_UID'] = $delPreviusUsrUid;
        if (isset($data['DEL_TASK_DUE_DATE'])) {
            $data['DEL_DUE_DATE'] = $data['DEL_TASK_DUE_DATE'];
        }

        $criteria = new Criteria();
        $criteria->addSelectColumn( ApplicationPeer::APP_NUMBER );
        $criteria->addSelectColumn( ApplicationPeer::APP_UPDATE_DATE );
        $criteria->add( ApplicationPeer::APP_UID, $data['APP_UID'], Criteria::EQUAL );
        $dataset = ApplicationPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data = array_merge($data, $aRow);


        $criteria = new Criteria();
        $criteria->addSelectColumn(ContentPeer::CON_VALUE);
        $criteria->add( ContentPeer::CON_ID, $data['APP_UID'], Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_CATEGORY, 'APP_TITLE', Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_LANG, SYS_LANG, Criteria::EQUAL );
        $dataset = ContentPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data['APP_TITLE'] = $aRow['CON_VALUE'];


        $criteria = new Criteria();
        $criteria->addSelectColumn(ContentPeer::CON_VALUE);
        $criteria->add( ContentPeer::CON_ID, $data['PRO_UID'], Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_CATEGORY, 'PRO_TITLE', Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_LANG, SYS_LANG, Criteria::EQUAL );
        $dataset = ContentPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data['APP_PRO_TITLE'] = $aRow['CON_VALUE'];


        $criteria = new Criteria();
        $criteria->addSelectColumn(ContentPeer::CON_VALUE);
        $criteria->add( ContentPeer::CON_ID, $data['TAS_UID'], Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_CATEGORY, 'TAS_TITLE', Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_LANG, SYS_LANG, Criteria::EQUAL );
        $dataset = ContentPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data['APP_TAS_TITLE'] = $aRow['CON_VALUE'];


        $data['APP_PREVIOUS_USER'] = '';
        if ($data['DEL_PREVIOUS_USR_UID'] != '') {
            $criteria = new Criteria();
            $criteria->addSelectColumn(UsersPeer::USR_USERNAME);
            $criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
            $criteria->addSelectColumn(UsersPeer::USR_LASTNAME);
            $criteria->add( UsersPeer::USR_UID, $data['DEL_PREVIOUS_USR_UID'], Criteria::EQUAL );
            $dataset = UsersPeer::doSelectRS($criteria);
            $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
            $dataset->next();
            $aRow = $dataset->getRow();
            $data['DEL_PREVIOUS_USR_USERNAME']  = $aRow['USR_USERNAME'];
            $data['DEL_PREVIOUS_USR_FIRSTNAME'] = $aRow['USR_FIRSTNAME'];
            $data['DEL_PREVIOUS_USR_LASTNAME']  = $aRow['USR_LASTNAME'];
        }

        $users = new Users();
        $criteria = new Criteria();
        $criteria->addSelectColumn(SubApplicationPeer::DEL_INDEX_PARENT);
        $criteria->add( SubApplicationPeer::APP_PARENT, $data['APP_UID'], Criteria::EQUAL );
        $dataset = SubApplicationPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        if ($dataset->next()) {
            $aSub = $dataset->getRow();
            if ($aSub['DEL_INDEX_PARENT'] == $data['DEL_PREVIOUS'] && !$isSelfService) {
                $users->refreshTotal($data['USR_UID'], 'add', 'inbox');
                self::create($data, $isSelfService);
                return 1;
            }
        }

        if (!$isInitSubprocess) {
            if ($data['APP_STATUS'] == 'DRAFT') {
                $users->refreshTotal($data['USR_UID'], 'add', 'draft');
            } else {
                $oRow = ApplicationPeer::retrieveByPK($data['APP_UID']);
                $aFields = $oRow->toArray( BasePeer::TYPE_FIELDNAME );
                if ($removeList) {
                    if ($data['DEL_INDEX'] == 2 || $aFields['APP_STATUS'] == 'DRAFT') {
                        $criteria = new Criteria();
                        $criteria->addSelectColumn(SubApplicationPeer::APP_UID);
                        $criteria->add( SubApplicationPeer::APP_UID, $data['APP_UID'], Criteria::EQUAL );
                        $dataset = SubApplicationPeer::doSelectRS($criteria);
                        if ($dataset->next()) {
                            $users->refreshTotal($delPreviusUsrUid, 'remove', 'inbox');
                        } else {
                            $users->refreshTotal($delPreviusUsrUid, 'remove', 'draft');
                        }
                    } else {
                        $users->refreshTotal($delPreviusUsrUid, 'remove', 'inbox');
                    }
                }
                if (!$isSelfService) {
                    $users->refreshTotal($data['USR_UID'], 'add', 'inbox');
                }
            }
        } else {
            if($data['USR_UID'] !=''){
                $users->refreshTotal($data['USR_UID'], 'add', 'inbox');
            }
            if ($dataPreviusApplication['APP_STATUS'] == 'DRAFT') {
                $users->refreshTotal($dataPreviusApplication['CURRENT_USER_UID'], 'remove', 'draft');
            } else {
                $users->refreshTotal($dataPreviusApplication['CURRENT_USER_UID'], 'remove', 'inbox');
            }
        }
        self::create($data, $isSelfService);
    }
Example #6
0
    /**
     * Create List Paused Table
     *
     * @param type $data
     * @return type
     *
     */
    public function create($data)
    {
        $criteria = new Criteria();
        $criteria->addSelectColumn(ContentPeer::CON_VALUE);
        $criteria->add( ContentPeer::CON_ID, $data['APP_UID'], Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_CATEGORY, 'APP_TITLE', Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_LANG, SYS_LANG, Criteria::EQUAL );
        $dataset = ContentPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data['APP_TITLE'] = $aRow['CON_VALUE'];

        $criteria = new Criteria();
        $criteria->addSelectColumn(ContentPeer::CON_VALUE);
        $criteria->add( ContentPeer::CON_ID, $data['PRO_UID'], Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_CATEGORY, 'PRO_TITLE', Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_LANG, SYS_LANG, Criteria::EQUAL );
        $dataset = ContentPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data['APP_PRO_TITLE'] = $aRow['CON_VALUE'];

        $criteria = new Criteria();
        $criteria->addSelectColumn(AppDelegationPeer::USR_UID);
        $criteria->addSelectColumn(AppDelegationPeer::TAS_UID);
        $criteria->addSelectColumn(AppDelegationPeer::DEL_INIT_DATE);
        $criteria->addSelectColumn(AppDelegationPeer::DEL_DELEGATE_DATE);
        $criteria->addSelectColumn(AppDelegationPeer::DEL_TASK_DUE_DATE);
        $criteria->addSelectColumn(AppDelegationPeer::DEL_PREVIOUS);
        $criteria->add( AppDelegationPeer::APP_UID, $data['APP_UID'], Criteria::EQUAL );
        $criteria->add( AppDelegationPeer::DEL_INDEX, $data['DEL_INDEX'], Criteria::EQUAL );
        $dataset = ContentPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data['USR_UID'] = isset($data['USR_UID']) ? $data['USR_UID'] : $aRow['USR_UID'];
        $data['TAS_UID'] = $aRow['TAS_UID'];
        $data['DEL_INIT_DATE'] = $aRow['DEL_INIT_DATE'];
        $data['DEL_DUE_DATE'] = $aRow['DEL_TASK_DUE_DATE'];
        $data['DEL_DELEGATE_DATE'] = $aRow['DEL_DELEGATE_DATE'];
        $delPrevious = $aRow['DEL_PREVIOUS'];

        $criteria = new Criteria();
        $criteria->addSelectColumn(AppDelegationPeer::USR_UID);
        $criteria->add( AppDelegationPeer::APP_UID, $data['APP_UID'], Criteria::EQUAL );
        $criteria->add( AppDelegationPeer::DEL_INDEX, $delPrevious, Criteria::EQUAL );
        $dataset = ContentPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data['DEL_PREVIOUS_USR_UID'] = $aRow['USR_UID'];

        $criteria = new Criteria();
        $criteria->addSelectColumn(UsersPeer::USR_USERNAME);
        $criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
        $criteria->addSelectColumn(UsersPeer::USR_LASTNAME);
        $criteria->add( UsersPeer::USR_UID, $data['DEL_PREVIOUS_USR_UID'], Criteria::EQUAL );
        $dataset = UsersPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data['DEL_PREVIOUS_USR_USERNAME']  = $aRow['USR_USERNAME'];
        $data['DEL_PREVIOUS_USR_FIRSTNAME'] = $aRow['USR_FIRSTNAME'];
        $data['DEL_PREVIOUS_USR_LASTNAME']  = $aRow['USR_LASTNAME'];

        $criteria = new Criteria();
        $criteria->addSelectColumn(ContentPeer::CON_VALUE);
        $criteria->add( ContentPeer::CON_ID, $data['TAS_UID'], Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_CATEGORY, 'TAS_TITLE', Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_LANG, SYS_LANG, Criteria::EQUAL );
        $dataset = ContentPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data['APP_TAS_TITLE'] = $aRow['CON_VALUE'];

        $criteria = new Criteria();
        $criteria->addSelectColumn(UsersPeer::USR_USERNAME);
        $criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
        $criteria->addSelectColumn(UsersPeer::USR_LASTNAME);
        $criteria->add( UsersPeer::USR_UID, $data['USR_UID'], Criteria::EQUAL );
        $dataset = UsersPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data['DEL_CURRENT_USR_USERNAME']  = $aRow['USR_USERNAME'];
        $data['DEL_CURRENT_USR_FIRSTNAME'] = $aRow['USR_FIRSTNAME'];
        $data['DEL_CURRENT_USR_LASTNAME']  = $aRow['USR_LASTNAME'];

        $data['APP_PAUSED_DATE'] = Date("Y-m-d H:i:s");

        $oListInbox = new ListInbox();
        $oListInbox->remove($data['APP_UID'], $data['DEL_INDEX']);

        $users = new Users();
        if ($data['APP_STATUS'] == 'DRAFT') {
            $users->refreshTotal($data['USR_UID'], 'removed', 'draft');
        } else {
            $users->refreshTotal($data['USR_UID'], 'removed', 'inbox');
        }
        $users->refreshTotal($data['USR_UID'], 'add', 'paused');

        $con = Propel::getConnection( ListPausedPeer::DATABASE_NAME );
        try {
            $this->fromArray( $data, BasePeer::TYPE_FIELDNAME );
            if ($this->validate()) {
                $result = $this->save();
            } else {
                $e = new Exception( "Failed Validation in class " . get_class( $this ) . "." );
                $e->aValidationFailures = $this->getValidationFailures();
                throw ($e);
            }
            $con->commit();
            return $result;
        } catch(Exception $e) {
            $con->rollback();
            throw ($e);
        }
    }
Example #7
0
    /**
     * Create List Completed Table
     *
     * @param type $data
     * @return type
     *
     */
    public function create($data)
    {
        $criteria = new Criteria();
        $criteria->addSelectColumn(ListCompletedPeer::APP_UID);
        $criteria->add( ListCompletedPeer::APP_UID, $data['APP_UID'], Criteria::EQUAL );
        $dataset = ListCompletedPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        if ($dataset->next()) {
            return 1;
        }

        $criteria = new Criteria();
        $criteria->addSelectColumn(ContentPeer::CON_VALUE);
        $criteria->add( ContentPeer::CON_ID, $data['APP_UID'], Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_CATEGORY, 'APP_TITLE', Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_LANG, SYS_LANG, Criteria::EQUAL );
        $dataset = ContentPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data['APP_TITLE'] = $aRow['CON_VALUE'];


        $criteria = new Criteria();
        $criteria->addSelectColumn(ContentPeer::CON_VALUE);
        $criteria->add( ContentPeer::CON_ID, $data['PRO_UID'], Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_CATEGORY, 'PRO_TITLE', Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_LANG, SYS_LANG, Criteria::EQUAL );
        $dataset = ContentPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data['APP_PRO_TITLE'] = $aRow['CON_VALUE'];


        $criteria = new Criteria();
        $criteria->addSelectColumn(ContentPeer::CON_VALUE);
        $criteria->add( ContentPeer::CON_ID, $data['TAS_UID'], Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_CATEGORY, 'TAS_TITLE', Criteria::EQUAL );
        $criteria->add( ContentPeer::CON_LANG, SYS_LANG, Criteria::EQUAL );
        $dataset = ContentPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data['APP_TAS_TITLE'] = $aRow['CON_VALUE'];


        $criteria = new Criteria();
        $criteria->addSelectColumn(UsersPeer::USR_USERNAME);
        $criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
        $criteria->addSelectColumn(UsersPeer::USR_LASTNAME);
        $criteria->add( UsersPeer::USR_UID, $data['USR_UID'], Criteria::EQUAL );
        $dataset = UsersPeer::doSelectRS($criteria);
        $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $dataset->next();
        $aRow = $dataset->getRow();
        $data['DEL_CURRENT_USR_USERNAME']  = $aRow['USR_USERNAME'];
        $data['DEL_CURRENT_USR_FIRSTNAME'] = $aRow['USR_FIRSTNAME'];
        $data['DEL_CURRENT_USR_LASTNAME']  = $aRow['USR_LASTNAME'];
        $data['DEL_PREVIOUS'] = isset($data['DEL_PREVIOUS']) ? $data['DEL_PREVIOUS'] : "";

        if ($data['DEL_PREVIOUS'] != 0) {
            $criteria = new Criteria();
            $criteria->addSelectColumn(AppDelegationPeer::USR_UID);
            $criteria->add( AppDelegationPeer::DEL_INDEX, $data['DEL_PREVIOUS'], Criteria::EQUAL );
            $dataset = UsersPeer::doSelectRS($criteria);
            $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
            $dataset->next();
            $aRow = $dataset->getRow();
            $data['DEL_PREVIOUS_USR_UID']  = $aRow['USR_UID'];
        }

        //Update - WHERE
        $criteriaWhere = new Criteria("workflow");
        $criteriaWhere->add(ListParticipatedLastPeer::APP_UID, $data["APP_UID"], Criteria::EQUAL);
        //Update - SET
        $criteriaSet = new Criteria("workflow");
        $criteriaSet->add(ListParticipatedLastPeer::APP_STATUS, 'COMPLETED');
        BasePeer::doUpdate($criteriaWhere, $criteriaSet, Propel::getConnection("workflow"));

        $users = new Users();
        $users->refreshTotal($data['USR_UID'], 'add', 'completed');
        if ($data['DEL_PREVIOUS'] != 0) {
            $criteria = new Criteria();
            $criteria->addSelectColumn(TaskPeer::TAS_TYPE);
            $criteria->add( TaskPeer::TAS_UID, $data['TAS_UID'], Criteria::EQUAL );
            $dataset = TaskPeer::doSelectRS($criteria);
            $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
            $dataset->next();
            $aRow = $dataset->getRow();
            if ($aRow['TAS_TYPE'] != 'SUBPROCESS') {
                $users->refreshTotal($data['USR_UID'], 'remove', 'inbox');
            }
        } else {
            $criteria = new Criteria();
            $criteria->addSelectColumn(SubApplicationPeer::APP_UID);
            $criteria->add( SubApplicationPeer::APP_UID, $data['APP_UID'], Criteria::EQUAL );
            $dataset = SubApplicationPeer::doSelectRS($criteria);
            $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
            if ($dataset->next()) {
                $users->refreshTotal($data['USR_UID'], 'remove', 'inbox');
            } else {
                $users->refreshTotal($data['USR_UID'], 'remove', 'draft');
            }
        }

        $con = Propel::getConnection( ListCompletedPeer::DATABASE_NAME );
        try {
            $this->fromArray( $data, BasePeer::TYPE_FIELDNAME );
            if ($this->validate()) {
                $result = $this->save();
            } else {
                $e = new Exception( "Failed Validation in class " . get_class( $this ) . "." );
                $e->aValidationFailures = $this->getValidationFailures();
                throw ($e);
            }
            $con->commit();
            return $result;
        } catch(Exception $e) {
            $con->rollback();
            throw ($e);
        }
    }
Example #8
0
 function getDenpendentUser($USR_UID)
 {
     //require_once 'classes/model/Users.php';
     //here the uid to next Users
     $oC = new Criteria();
     $oC->addSelectColumn(UsersPeer::USR_REPORTS_TO);
     $oC->add(UsersPeer::USR_UID, $USR_UID);
     $oDataset = UsersPeer::doSelectRS($oC);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     $aRow = $oDataset->getRow();
     return $aRow['USR_REPORTS_TO'];
 }
    /**
     * Refresh List Participated Last
     *
     * @param type $seqName
     * @return type
     * @throws type
     *
     */
    public function refresh ($data, $isSelfService = false)
    {
        $data['APP_STATUS'] = (empty($data['APP_STATUS'])) ? 'TO_DO' : $data['APP_STATUS'];
        if (!$isSelfService) {
            if ($data["USR_UID"] == "") {
                return;
            }

            $criteria = new Criteria();
            $criteria->addSelectColumn(UsersPeer::USR_USERNAME);
            $criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
            $criteria->addSelectColumn(UsersPeer::USR_LASTNAME);
            $criteria->add( UsersPeer::USR_UID, $data['USR_UID'], Criteria::EQUAL );
            $dataset = UsersPeer::doSelectRS($criteria);
            $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
            $dataset->next();
            $aRow = $dataset->getRow();

            //Update - WHERE
            $criteriaWhere = new Criteria("workflow");
            $criteriaWhere->add(ListParticipatedLastPeer::APP_UID, $data["APP_UID"], Criteria::EQUAL);
            //Update - SET
            $criteriaSet = new Criteria("workflow");
            $criteriaSet->add(ListParticipatedLastPeer::DEL_CURRENT_USR_USERNAME, $aRow['USR_USERNAME']);
            $criteriaSet->add(ListParticipatedLastPeer::DEL_CURRENT_USR_FIRSTNAME, $aRow['USR_FIRSTNAME']);
            $criteriaSet->add(ListParticipatedLastPeer::DEL_CURRENT_USR_LASTNAME, $aRow['USR_LASTNAME']);
            BasePeer::doUpdate($criteriaWhere, $criteriaSet, Propel::getConnection("workflow"));

        }
        $this->update($data);

    }
Example #10
0
 /**
  * Get all Users of a Group
  *
  * @param string $option          Option (USERS, AVAILABLE-USERS)
  * @param string $groupUid        Unique id of Group
  * @param array  $arrayFilterData Data of the filters
  * @param string $sortField       Field name to sort
  * @param string $sortDir         Direction of sorting (ASC, DESC)
  * @param int    $start           Start
  * @param int    $limit           Limit
  *
  * return array Return an array with all Users of a Group
  */
 public function getUsers($option, $groupUid, $arrayFilterData = null, $sortField = null, $sortDir = null, $start = null, $limit = null)
 {
     try {
         $arrayUser = array();
         //Verify data
         $process = new \ProcessMaker\BusinessModel\Process();
         $this->throwExceptionIfNotExistsGroup($groupUid, $this->arrayFieldNameForException["groupUid"]);
         $process->throwExceptionIfDataNotMetPagerVarDefinition(array("start" => $start, "limit" => $limit), $this->arrayFieldNameForException);
         //Get data
         if (!is_null($limit) && $limit . "" == "0") {
             return $arrayUser;
         }
         //SQL
         switch ($option) {
             case "SUPERVISOR":
                 $flagPermission = true;
                 //Criteria for Supervisor
                 $criteria = $this->getUserCriteria($groupUid, $arrayFilterData);
                 break;
             case "USERS":
                 //Criteria
                 $criteria = $this->getUserCriteria($groupUid, $arrayFilterData);
                 break;
             case "AVAILABLE-USERS":
                 //Get Uids
                 $arrayUid = array();
                 $criteria = $this->getUserCriteria($groupUid);
                 $rsCriteria = \UsersPeer::doSelectRS($criteria);
                 $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
                 while ($rsCriteria->next()) {
                     $row = $rsCriteria->getRow();
                     $arrayUid[] = $row["USR_UID"];
                 }
                 //Criteria
                 $criteria = $this->getUserCriteria("", $arrayFilterData, $arrayUid);
                 break;
         }
         //SQL
         if (!is_null($sortField) && trim($sortField) != "") {
             $sortField = strtoupper($sortField);
             if (in_array($sortField, array("USR_UID", "USR_USERNAME", "USR_FIRSTNAME", "USR_LASTNAME", "USR_EMAIL", "USR_STATUS"))) {
                 $sortField = \UsersPeer::TABLE_NAME . "." . $sortField;
             } else {
                 $sortField = \UsersPeer::USR_USERNAME;
             }
         } else {
             $sortField = \UsersPeer::USR_USERNAME;
         }
         if (!is_null($sortDir) && trim($sortDir) != "" && strtoupper($sortDir) == "DESC") {
             $criteria->addDescendingOrderByColumn($sortField);
         } else {
             $criteria->addAscendingOrderByColumn($sortField);
         }
         if (!is_null($start)) {
             $criteria->setOffset((int) $start);
         }
         if (!is_null($limit)) {
             $criteria->setLimit((int) $limit);
         }
         $rsCriteria = \UsersPeer::doSelectRS($criteria);
         $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         if (isset($flagPermission) && $flagPermission) {
             \G::LoadSystem('rbac');
             while ($rsCriteria->next()) {
                 $row = $rsCriteria->getRow();
                 $aPermissions = $this->loadUserRolePermission("PROCESSMAKER", $row['USR_UID']);
                 $bInclude = false;
                 foreach ($aPermissions as $aPermission) {
                     if ($aPermission['PER_CODE'] == 'PM_SUPERVISOR') {
                         $bInclude = true;
                     }
                 }
                 if ($bInclude) {
                     $arrayUser[] = $this->getUserDataFromRecord($row);
                 }
             }
         } else {
             while ($rsCriteria->next()) {
                 $row = $rsCriteria->getRow();
                 $arrayUser[] = $this->getUserDataFromRecord($row);
             }
         }
         //Return
         return $arrayUser;
     } catch (\Exception $e) {
         throw $e;
     }
 }
function buildData()
{
    require_once "classes/model/Users.php";
    G::LoadClass("serverConfiguration");
    G::LoadClass("system");
    $oServerConf =& serverConf::getSingleton();
    $os = '';
    if (file_exists('/etc/redhat-release')) {
        $fnewsize = filesize('/etc/redhat-release');
        $fp = fopen('/etc/redhat-release', 'r');
        $os = trim(fread($fp, $fnewsize));
        fclose($fp);
    }
    $os .= " (" . PHP_OS . ")";
    $params = array();
    $params['ip'] = getenv('SERVER_ADDR');
    $oServerConf->setHeartbeatProperty('HB_BEAT_INDEX', intval($oServerConf->getHeartbeatProperty('HB_BEAT_INDEX', 'HEART_BEAT_CONF')) + 1, 'HEART_BEAT_CONF');
    $params['index'] = $oServerConf->getHeartbeatProperty('HB_BEAT_INDEX', 'HEART_BEAT_CONF');
    //$this->index;
    $params['beatType'] = is_null($oServerConf->getHeartbeatProperty('HB_BEAT_TYPE', 'HEART_BEAT_CONF')) ? "starting" : $oServerConf->getHeartbeatProperty('HB_BEAT_TYPE', 'HEART_BEAT_CONF');
    //1;//$this->beatType;
    $params['date'] = date('Y-m-d H:i:s');
    $params['host'] = getenv('SERVER_NAME');
    $params['os'] = $os;
    $params['webserver'] = getenv('SERVER_SOFTWARE');
    $params['php'] = phpversion();
    $params['pmVersion'] = System::getVersion();
    if (class_exists('pmLicenseManager')) {
        $params['pmProduct'] = 'PMEE';
    } else {
        $params['pmProduct'] = 'PMCE';
    }
    $params['logins'] = $oServerConf->logins;
    $params['workspaces'] = serialize($oServerConf->getWSList());
    $params['plugins'] = serialize($oServerConf->getPluginsList());
    $params['dbVersion'] = $oServerConf->getDBVersion();
    //$params ['errors'] = serialize( $oServerConf->errors );
    if ($licInfo = $oServerConf->getProperty('LICENSE_INFO')) {
        $params['license'] = serialize($licInfo);
    }
    ///////
    $criteria = new Criteria("workflow");
    $criteria->addSelectColumn("COUNT(USERS.USR_UID) AS USERS_NUMBER");
    $criteria->add(UsersPeer::USR_UID, null, Criteria::ISNOTNULL);
    $rs = UsersPeer::doSelectRS($criteria);
    $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
    $rs->next();
    $row = $rs->getRow();
    $params["users"] = $row["USERS_NUMBER"];
    ///////
    $ee = null;
    if (file_exists(PATH_PLUGINS . "enterprise" . PATH_SEP . "VERSION")) {
        $ee = trim(file_get_contents(PATH_PLUGINS . "enterprise" . PATH_SEP . "VERSION"));
    } else {
        $pluginRegistry =& PMPluginRegistry::getSingleton();
        $details = $pluginRegistry->getPluginDetails("enterprise.php");
        $ee = !($details == null) ? $details->iVersion : null;
    }
    $params["ee"] = $ee;
    ///////
    $addonNumber = 0;
    $addonEnabledNumber = 0;
    $pluginRegistry =& PMPluginRegistry::getSingleton();
    $arrayAddon = array();
    if (file_exists(PATH_DATA_SITE . "ee")) {
        $arrayAddon = unserialize(trim(file_get_contents(PATH_DATA_SITE . "ee")));
        $arrayAddon["enterprise"] = array("sFilename" => "enterprise-1.tar");
    }
    foreach ($arrayAddon as $addon) {
        $sFileName = substr($addon["sFilename"], 0, strpos($addon["sFilename"], "-"));
        if (file_exists(PATH_PLUGINS . $sFileName . ".php")) {
            $addonDetails = $pluginRegistry->getPluginDetails($sFileName . ".php");
            $enabled = 0;
            if ($addonDetails) {
                $enabled = $addonDetails->enabled ? 1 : 0;
            }
            if ($enabled == 1) {
                $addonEnabledNumber = $addonEnabledNumber + 1;
            }
            $addonNumber = $addonNumber + 1;
        }
    }
    $params["addonNumber"] = $addonNumber;
    $params["addonEnabledNumber"] = $addonEnabledNumber;
    ///////
    $licenseID = null;
    $licenseType = null;
    $licenseDomainWorkspace = null;
    $licenseNumber = 0;
    if (file_exists(PATH_PLUGINS . "enterprise" . PATH_SEP . "class.pmLicenseManager.php")) {
        $licenseManager =& pmLicenseManager::getSingleton();
        preg_match("/^license_(.*).dat\$/", $licenseManager->file, $matches);
        $licenseID = $matches[1];
        $licenseType = $licenseManager->type;
        $licenseDomainWorkspace = $licenseManager->info["DOMAIN_WORKSPACE"];
        ///////
        $criteria = new Criteria("workflow");
        $criteria->addSelectColumn("COUNT(LICENSE_MANAGER.LICENSE_UID) AS LICENSE_NUMBER");
        $criteria->add(LicenseManagerPeer::LICENSE_UID, null, Criteria::ISNOTNULL);
        $rs = LicenseManagerPeer::doSelectRS($criteria);
        $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        $rs->next();
        $row = $rs->getRow();
        ///////
        $licenseNumber = $row["LICENSE_NUMBER"] > 0 ? $row["LICENSE_NUMBER"] : count(glob(PATH_DATA_SITE . "licenses" . PATH_SEP . "*.dat"));
    }
    $params["licenseID"] = $licenseID;
    $params["licenseType"] = $licenseType;
    $params["licenseDomainWorkspace"] = $licenseDomainWorkspace;
    $params["licenseNumber"] = $licenseNumber;
    ///////
    return $params;
}
Example #12
0
    /**

     * Get all Users

     *

     * @param array  $arrayFilterData Data of the filters

     * @param string $sortField       Field name to sort

     * @param string $sortDir         Direction of sorting (ASC, DESC)

     * @param int    $start           Start

     * @param int    $limit           Limit

     *

     * return array Return an array with all Users

     */

    public function getUsers($arrayFilterData = null, $sortField = null, $sortDir = null, $start = null, $limit = null)

    {

        try {

            $arrayUser = array();



            $numRecTotal = 0;



            //Verify data

            $process = new \ProcessMaker\BusinessModel\Process();



            $process->throwExceptionIfDataNotMetPagerVarDefinition(array("start" => $start, "limit" => $limit), array("start" => "start", "limit" => "limit"));



            //Set variables

            $filterName = "filter";



            if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"])) {

                $arrayAux = array(

                    ""      => "filter",

                    "LEFT"  => "lfilter",

                    "RIGHT" => "rfilter"

                );



                $filterName = $arrayAux[(isset($arrayFilterData["filterOption"]))? $arrayFilterData["filterOption"] : ""];

            }



            //Get data

            if (!is_null($limit) && $limit . "" == "0") {

                //Return

                return array(

                    "total"     => $numRecTotal,

                    "start"     => (int)((!is_null($start))? $start : 0),

                    "limit"     => (int)((!is_null($limit))? $limit : 0),

                    $filterName => (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]))? $arrayFilterData["filter"] : "",

                    "data"      => $arrayUser

                );

            }



            //Query

            $criteria = $this->getUserCriteria();



            if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]) && trim($arrayFilterData["filter"]) != "") {

                $arraySearch = array(

                    ""      => "%" . $arrayFilterData["filter"] . "%",

                    "LEFT"  => $arrayFilterData["filter"] . "%",

                    "RIGHT" => "%" . $arrayFilterData["filter"]

                );



                $search = $arraySearch[(isset($arrayFilterData["filterOption"]))? $arrayFilterData["filterOption"] : ""];



                $criteria->add(

                    $criteria->getNewCriterion(\UsersPeer::USR_USERNAME,  $search, \Criteria::LIKE)->addOr(

                    $criteria->getNewCriterion(\UsersPeer::USR_FIRSTNAME, $search, \Criteria::LIKE))->addOr(

                    $criteria->getNewCriterion(\UsersPeer::USR_LASTNAME,  $search, \Criteria::LIKE))

                );

            }



            $criteria->add(\UsersPeer::USR_STATUS, "ACTIVE", \Criteria::EQUAL);



            //Number records total

            $criteriaCount = clone $criteria;



            $criteriaCount->clearSelectColumns();

            $criteriaCount->addSelectColumn("COUNT(" . \UsersPeer::USR_UID . ") AS NUM_REC");



            $rsCriteriaCount = \UsersPeer::doSelectRS($criteriaCount);

            $rsCriteriaCount->setFetchmode(\ResultSet::FETCHMODE_ASSOC);



            $result = $rsCriteriaCount->next();

            $row = $rsCriteriaCount->getRow();



            $numRecTotal = (int)($row["NUM_REC"]);



            //Query

            if (!is_null($sortField) && trim($sortField) != "") {

                $sortField = strtoupper($sortField);



                if (in_array(\UsersPeer::TABLE_NAME . "." . $sortField, $criteria->getSelectColumns())) {

                    $sortField = \UsersPeer::TABLE_NAME . "." . $sortField;

                } else {

                    $sortField = \UsersPeer::USR_FIRSTNAME;

                }

            } else {

                $sortField = \UsersPeer::USR_FIRSTNAME;

            }



            if (!is_null($sortDir) && trim($sortDir) != "" && strtoupper($sortDir) == "DESC") {

                $criteria->addDescendingOrderByColumn($sortField);

            } else {

                $criteria->addAscendingOrderByColumn($sortField);

            }



            if (!is_null($start)) {

                $criteria->setOffset((int)($start));

            }



            if (!is_null($limit)) {

                $criteria->setLimit((int)($limit));

            }



            $rsCriteria = \UsersPeer::doSelectRS($criteria);

            $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);



            while ($rsCriteria->next()) {

                $row = $rsCriteria->getRow();



                $arrayUser[] = $this->getUserDataFromRecord($row);

            }



            //Return

            return array(

                "total"     => $numRecTotal,

                "start"     => (int)((!is_null($start))? $start : 0),

                "limit"     => (int)((!is_null($limit))? $limit : 0),

                $filterName => (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]))? $arrayFilterData["filter"] : "",

                "data"      => $arrayUser

            );

        } catch (\Exception $e) {

            throw $e;

        }

    }
 public function enterpriseSystemUpdate($data)
 {
     if (count(glob(PATH_DATA_SITE . 'license/*.dat')) == 0) {
         return;
     }
     require_once "classes/model/Users.php";
     $user = $data;
     $criteria = new Criteria("workflow");
     //SELECT
     $criteria->addSelectColumn(UsersPeer::USR_UID);
     //FROM
     //WHERE
     $criteria->add(UsersPeer::USR_USERNAME, $user->lName);
     //$user->lPassword
     $criteria->add(UsersPeer::USR_ROLE, "PROCESSMAKER_ADMIN");
     //query
     $rsSQLUSR = UsersPeer::doSelectRS($criteria);
     $rsSQLUSR->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $sw = 0;
     if (UsersPeer::doCount($criteria) > 0) {
         //if ($rsSQLUSR->getRecordCount() > 0) {
         $sw = 1;
     }
     /*
     $cnn = Propel::getConnection("workflow");
     $stmt = $cnn->createStatement();
     
     $sql = "SELECT USR.USR_UID
             FROM   USERS AS USR
             WHERE  USR.USR_USERNAME = '******' AND USR.USR_ROLE = 'PROCESSMAKER_ADMIN'";
     $rsSQLUSR = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
     
     $sw = 0;
     
     if ($rsSQLUSR->getRecordCount() > 0) {
         $sw = 1;
     }
     */
     if ($sw == 1) {
         //Upgrade available
         $swUpgrade = 0;
         $addonList = AddonsStore::addonList();
         $addon = $addonList["addons"];
         if (count($addon) > 0) {
             $status = array("ready", "upgrade", "available");
             $pmVersion = EnterpriseUtils::pmVersion(PM_VERSION);
             foreach ($addon as $index => $value) {
                 if ($addon[$index]["id"] == "processmaker") {
                     if (version_compare($pmVersion . "", EnterpriseUtils::pmVersion($addon[$index]["version"]) . "", "<")) {
                         $swUpgrade = 1;
                         break;
                     }
                 } else {
                     if (in_array($addon[$index]["status"], $status)) {
                         $swUpgrade = 1;
                         break;
                     }
                 }
             }
         }
         if ($swUpgrade == 1) {
             $_SESSION["__ENTERPRISE_SYSTEM_UPDATE__"] = 1;
         }
     }
 }
Example #14
0
    /**

     * Get all Users

     *

     * @param string $filter

     * @param int    $start

     * @param int    $limit

     *

     * return array Return an array with all Users

     */

    public function getUsers($filter, $start, $limit)

    {

        try {

            $aUserInfo = array();

            require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Users.php");



            $oCriteria = $this->getUserCriteria();



            if ($filter != '') {

                $oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) );

            }

            if ($start) {

                if ($start < 0) {

                    throw new \Exception(\G::LoadTranslation("ID_INVALID_START"));

                } else {

                    $oCriteria->setOffset($start);

                }

            }

            if ($limit != '') {

                if ($limit < 0) {

                    throw new \Exception(\G::LoadTranslation("ID_INVALID_LIMIT"));

                } else {

                    if ($limit == 0) {

                        return $aUserInfo;

                    } else {

                        $oCriteria->setLimit($limit);

                    }

                }

            }

            $oCriteria->add(\UsersPeer::USR_STATUS, "ACTIVE", \Criteria::EQUAL);

            $oDataset = \UsersPeer::doSelectRS($oCriteria);

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

            while ($oDataset->next()) {

                $aRow1 = $oDataset->getRow();

                $aRow1 = array_change_key_case($aRow1, CASE_LOWER);

                $aUserInfo[] = $aRow1;

            }

            //Return

            return $aUserInfo;

        } catch (\Exception $e) {

            throw $e;

        }

    }
 /**
  * Return available supervisors
  * @param string $obj_type
  * @param string $sProcessUID
  *
  * @return array
  *
  * @access public
  */
 public function getAvailableProcessSupervisors($obj_type, $sProcessUID = '')
 {
     try {
         require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Roles.php");
         $aRespLi = array();
         $aRespLiGroups = array();
         $userRole = new \ProcessMaker\BusinessModel\User();
         // Groups
         $oCriteria = new \Criteria('workflow');
         $oCriteria->addSelectColumn(\ProcessUserPeer::USR_UID);
         $oCriteria->addSelectColumn(\ProcessUserPeer::PU_TYPE);
         $oCriteria->add(\ProcessUserPeer::PRO_UID, $sProcessUID);
         $oCriteria->add(\ProcessUserPeer::PU_TYPE, '%SUPERVISOR%', \Criteria::LIKE);
         $oDataset = \ProcessUserPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         $aUIDS = array();
         $aGRUS = array();
         while ($aRow = $oDataset->getRow()) {
             if ($aRow['PU_TYPE'] == 'SUPERVISOR') {
                 $aUIDS [] = $aRow ['USR_UID'];
             } else {
                 $aGRUS [] = $aRow ['USR_UID'];
             }
             $oDataset->next();
         }
         $oCriteria = new \Criteria('workflow');
         $oCriteria->addSelectColumn(\GroupwfPeer::GRP_UID);
         $oCriteria->addAsColumn('GRP_TITLE', \ContentPeer::CON_VALUE);
         $aConditions [] = array(\GroupwfPeer::GRP_UID, \ContentPeer::CON_ID);
         $aConditions [] = array(\ContentPeer::CON_CATEGORY, \DBAdapter::getStringDelimiter() . 'GRP_TITLE' . \DBAdapter::getStringDelimiter());
         $aConditions [] = array(\ContentPeer::CON_LANG, \DBAdapter::getStringDelimiter() . SYS_LANG . \DBAdapter::getStringDelimiter());
         $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
         $oCriteria->add(\GroupwfPeer::GRP_UID, $aGRUS, \Criteria::NOT_IN);
         $oCriteria->addAscendingOrderByColumn(\ContentPeer::CON_VALUE);
         $oDataset = \GroupwfPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         if ($obj_type == 'group' || $obj_type == '') {
             while ($aRow = $oDataset->getRow()) {
                 $group = new \ProcessMaker\BusinessModel\Group();
                 $userGroup = $group->getUsers('USERS', $aRow['GRP_UID']);
                 foreach ($userGroup as $value) {
                     $permission = $userRole->loadUserRolePermission('PROCESSMAKER', $value["USR_UID"]);
                     foreach ($permission as $values) {
                         if ($values["PER_CODE"] == 'PM_SUPERVISOR') {
                             $aRespLiGroups[] = array('grp_uid' => $aRow['GRP_UID'],
                                                'grp_name' => $aRow['GRP_TITLE'],
                                                'obj_type' => "group");
                         }
                     }
                 }
                 $oDataset->next();
             }
         }
         $exclude = array("");
         for ($i = 0; $i<=count($aRespLiGroups)-1; $i++) {
             if (!in_array(trim($aRespLiGroups[$i]["grp_uid"]) ,$exclude)) {
                 $aRespLi[] = $aRespLiGroups[$i];
                 $exclude[] = trim($aRespLiGroups[$i]["grp_uid"]);
             }
         }
         $sDelimiter = \DBAdapter::getStringDelimiter();
         $oCriteria = new \Criteria('workflow');
         $oCriteria->addSelectColumn(\UsersPeer::USR_UID);
         $oCriteria->addSelectColumn(\UsersPeer::USR_ROLE);
         $oCriteria->add(\UsersPeer::USR_UID, $aUIDS, \Criteria::NOT_IN);
         $oDataset = \UsersPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         $aUIDS = array();
         while ($aRow = $oDataset->getRow()) {
             $permission = $userRole->loadUserRolePermission('PROCESSMAKER', $aRow['USR_UID']);
             foreach ($permission as $key => $value) {
                 if ($value["PER_CODE"] == 'PM_SUPERVISOR') {
                     $aUIDS [] = $aRow ['USR_UID'];
                 }
             }
             $oDataset->next();
         }
         $oCriteria = new \Criteria('workflow');
         $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->add(\UsersPeer::USR_UID, $aUIDS, \Criteria::IN);
         $oCriteria->addAscendingOrderByColumn(\UsersPeer::USR_FIRSTNAME);
         $oCriteria->add(\UsersPeer::USR_STATUS, 'ACTIVE');
         $oDataset = \UsersPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         if ($obj_type == 'user' || $obj_type == '') {
             while ($aRow = $oDataset->getRow()) {
                 $aRespLi[] = array('usr_uid' => $aRow['USR_UID'],
                                    'usr_firstname' => $aRow['USR_FIRSTNAME'],
                                    'usr_lastname' => $aRow['USR_LASTNAME'],
                                    'usr_username' => $aRow['USR_USERNAME'],
                                    'usr_email' => $aRow['USR_EMAIL'],
                                    "obj_type" => "user" );
                 $oDataset->next();
             }
         }
         return $aRespLi;
     } catch (Exception $e) {
         throw $e;
     }
 }
Example #16
0
 public function getAllDepartmentsByUser()
 {
     $c = new Criteria('workflow');
     $c->addSelectColumn(UsersPeer::USR_UID);
     $c->addAsColumn('DEP_TITLE', ContentPeer::CON_VALUE);
     $c->add(ContentPeer::CON_LANG, defined(SYS_LANG) ? SYS_LANG : 'en');
     $c->add(ContentPeer::CON_CATEGORY, 'DEPO_TITLE');
     $c->addJoin(UsersPeer::DEP_UID, ContentPeer::CON_ID, Criteria::INNER_JOIN);
     $Dat = UsersPeer::doSelectRS($c);
     $Dat->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $aRows = array();
     while ($Dat->next()) {
         $row = $Dat->getRow();
         $aRows[$row['USR_UID']] = $row['DEP_TITLE'];
     }
     return $aRows;
 }
Example #17
0
 function getAllUsersByDepartment()
 {
     $oCriteria = new Criteria('rbac');
     $oCriteria->addSelectColumn(UsersPeer::DEP_UID);
     $oCriteria->addSelectColumn('COUNT(*) AS CNT');
     $oCriteria->add(UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL);
     $oCriteria->addGroupByColumn(UsersPeer::DEP_UID);
     $oDataset = UsersPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $aDepts = array();
     while ($oDataset->next()) {
         $row = $oDataset->getRow();
         $aDepts[$row['DEP_UID']] = $row['CNT'];
     }
     return $aDepts;
 }
Example #18
0
 /**
  * Get all Active users
  *
  * @return array of all active users
  */
 public function getAll($start = null, $limit = null, $search = null)
 {
     $totalCount = 0;
     $criteria = new Criteria('workflow');
     $criteria->addSelectColumn(UsersPeer::USR_UID);
     $criteria->addSelectColumn(UsersPeer::USR_USERNAME);
     $criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
     $criteria->addSelectColumn(UsersPeer::USR_LASTNAME);
     $criteria->add(UsersPeer::USR_STATUS, 'ACTIVE');
     $criteria->addAscendingOrderByColumn(UsersPeer::USR_LASTNAME);
     if ($search) {
         $criteria->add($criteria->getNewCriterion(UsersPeer::USR_USERNAME, "%{$search}%", Criteria::LIKE)->addOr($criteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, "%{$search}%", Criteria::LIKE))->addOr($criteria->getNewCriterion(UsersPeer::USR_LASTNAME, "%{$search}%", Criteria::LIKE)));
     }
     $c = clone $criteria;
     $c->clearSelectColumns();
     $c->addSelectColumn('COUNT(*)');
     $dataset = UsersPeer::doSelectRS($c);
     $dataset->next();
     $rowCount = $dataset->getRow();
     if (is_array($rowCount)) {
         $totalCount = $rowCount[0];
     }
     if ($start) {
         $criteria->setOffset($start);
     }
     if ($limit) {
         $criteria->setLimit($limit);
     }
     $rs = UsersPeer::doSelectRS($criteria);
     $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $rows = array();
     while ($rs->next()) {
         $rows[] = $rs->getRow();
     }
     $result->data = $rows;
     $result->totalCount = $totalCount;
     return $result;
 }
Example #19
0
 /**
  * Refresh List My Inbox
  *
  * @param type $seqName
  * @return type
  * @throws type
  *
  */
 public function refresh($data)
 {
     $data['APP_STATUS'] = empty($data['APP_STATUS']) ? 'TO_DO' : $data['APP_STATUS'];
     $criteria = new Criteria();
     $criteria->addSelectColumn(UsersPeer::USR_USERNAME);
     $criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
     $criteria->addSelectColumn(UsersPeer::USR_LASTNAME);
     $criteria->add(UsersPeer::USR_UID, $data['USR_UID'], Criteria::EQUAL);
     $dataset = UsersPeer::doSelectRS($criteria);
     $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $dataset->next();
     $aRow = $dataset->getRow();
     $data['DEL_CURRENT_USR_UID'] = $data['USR_UID'];
     $data['DEL_CURRENT_USR_USERNAME'] = $aRow['USR_USERNAME'];
     $data['DEL_CURRENT_USR_FIRSTNAME'] = $aRow['USR_FIRSTNAME'];
     $data['DEL_CURRENT_USR_LASTNAME'] = $aRow['USR_LASTNAME'];
     if ($data['DEL_INDEX'] == 1 && $data['APP_STATUS'] == 'TO_DO') {
         $data['APP_CREATE_DATE'] = $data['APP_UPDATE_DATE'];
         $oCriteria = new Criteria('workflow');
         $oCriteria->add(ListMyInboxPeer::APP_UID, $data['APP_UID']);
         $oCriteria->add(ListMyInboxPeer::USR_UID, $data['USR_UID']);
         ListMyInboxPeer::doDelete($oCriteria);
         $this->create($data);
     } else {
         unset($data['USR_UID']);
         $this->update($data);
     }
 }
Example #20
0
 /**
  * Get the assigned users of a task
  * @param string $sTaskUID
  * @param integer $iType
  * @return array
  */
 public function getUsersOfTask($sTaskUID, $iType)
 {
     try {
         $aUsers = array();
         $oCriteria = new Criteria('workflow');
         $oCriteria->addJoin(UsersPeer::USR_UID, TaskUserPeer::USR_UID, Criteria::LEFT_JOIN);
         $oCriteria->add(TaskUserPeer::TAS_UID, $sTaskUID);
         $oCriteria->add(TaskUserPeer::TU_TYPE, $iType);
         $oCriteria->add(TaskUserPeer::TU_RELATION, 1);
         $oDataset = UsersPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         while ($aRow = $oDataset->getRow()) {
             $aUsers[] = $aRow;
             $oDataset->next();
         }
         return $aUsers;
     } catch (Exception $oError) {
         throw $oError;
     }
 }
$sWS_USER = trim($_REQUEST['USERNAME']);
$sWS_PASS = trim($_REQUEST['PASSWORD']);
if (G::is_https()) {
    $http = 'https://';
} else {
    $http = 'http://';
}
$endpoint = $http . $_SERVER['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/services/wsdl2';
@($client = new SoapClient($endpoint));
$user = $sWS_USER;
$pass = $sWS_PASS;
$params = array('userid' => $user, 'password' => $pass);
$result = $client->__SoapCall('login', array($params));
$fields['status_code'] = $result->status_code;
$fields['message'] = 'ProcessMaker WebService version: ' . $result->version . "\n" . $result->message;
$fields['version'] = $result->version;
$fields['time_stamp'] = $result->timestamp;
$messageCode = $result->message;
if ($result->status_code == 0) {
    if (!class_exists('Users')) {
        require "classes/model/UsersPeer.php";
    }
    $oCriteria = new Criteria('workflow');
    $oCriteria->addSelectColumn('USR_UID');
    $oCriteria->add(UsersPeer::USR_USERNAME, $sWS_USER);
    $resultSet = UsersPeer::doSelectRS($oCriteria);
    $resultSet->next();
    $user_id = $resultSet->getRow();
    $messageCode = $user_id[0];
}
echo $messageCode;
Example #22
0
    //now get users, just for the Search action
    switch ($action) {
        case 'search_simple':
        case 'search':
            G::LoadClass("configuration");
            $conf = new Configurations();
            $confEnvSetting = $conf->getFormats();
            $cUsers = new Criteria('workflow');
            $cUsers->clearSelectColumns();
            $cUsers->addSelectColumn(UsersPeer::USR_UID);
            $cUsers->addSelectColumn(UsersPeer::USR_USERNAME);
            $cUsers->addSelectColumn(UsersPeer::USR_FIRSTNAME);
            $cUsers->addSelectColumn(UsersPeer::USR_LASTNAME);
            $cUsers->add(UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL);
            $cUsers->addAscendingOrderByColumn(UsersPeer::TABLE_NAME . "." . $conf->userNameFormatGetFirstFieldByUsersTable());
            $oDataset = UsersPeer::doSelectRS($cUsers);
            $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
            while ($oDataset->next()) {
                $row = $oDataset->getRow();
                $usrFullName = $conf->usersNameFormatBySetParameters($confEnvSetting["format"], $row["USR_USERNAME"], $row["USR_FIRSTNAME"], $row["USR_LASTNAME"]);
                $users[] = array("USR_UID" => $row["USR_UID"], "USR_FULLNAME" => $usrFullName);
            }
            break;
        default:
            return $users;
            break;
    }
    //return $users;
    return print G::json_encode($users);
}
if ($actionAjax == "processListExtJs") {
Example #23
0
    /**

     * reassign Case

     *

     * @param string sessionId : The session ID (which was obtained during login)

     * @param string caseId : The case ID (which can be obtained with the caseList() function)

     * @param string delIndex : The delegation index number of the case (which can be obtained with the caseList()

     * function).

     * @param string userIdSource : The user who is currently assigned the case.

     * @param string userIdTarget : The target user who will be newly assigned to the case.

     * @return $result will return an object

     */

    public function reassignCase ($sessionId, $caseId, $delIndex, $userIdSource, $userIdTarget)

    {

        $g = new G();



        try {

            $g->sessionVarSave();



            $_SESSION["APPLICATION"] = $caseId;

            $_SESSION["INDEX"] = $delIndex;

            $_SESSION["USER_LOGGED"] = $userIdSource;



            if ($userIdTarget == $userIdSource) {

                $result = new wsResponse( 30, G::loadTranslation( 'ID_TARGET_ORIGIN_USER_SAME' ) );



                $g->sessionVarRestore();



                return $result;

            }



            /**

             * ****************( 1 )*****************

             */

            $oCriteria = new Criteria( 'workflow' );

            $oCriteria->add( UsersPeer::USR_STATUS, 'ACTIVE' );

            $oCriteria->add( UsersPeer::USR_UID, $userIdSource );

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

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

            $oDataset->next();

            $aRow = $oDataset->getRow();



            if (! is_array( $aRow )) {

                $result = new wsResponse( 31, G::loadTranslation( 'ID_INVALID_ORIGIN_USER' ) );



                $g->sessionVarRestore();



                return $result;

            }



            /**

             * ****************( 2 )*****************

             */

            $oCase = new Cases();

            $rows = $oCase->loadCase( $caseId );



            if (! is_array( $aRow )) {

                $result = new wsResponse( 32, G::loadTranslation( 'ID_CASE_NOT_OPEN' ) );



                $g->sessionVarRestore();



                return $result;

            }



            /**

             * ****************( 3 )*****************

             */

            $oCriteria = new Criteria( 'workflow' );

            $aConditions = array ();

            // $aConditions[] = array(AppDelegationPeer::USR_UID, TaskUserPeer::USR_UID);

            // $aConditions[] = array(AppDelegationPeer::TAS_UID, TaskUserPeer::TAS_UID);

            // $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);

            //$oCriteria->addJoin(AppDelegationPeer::USR_UID, TaskUserPeer::USR_UID, Criteria::LEFT_JOIN);

            $oCriteria->add( AppDelegationPeer::APP_UID, $caseId );

            $oCriteria->add( AppDelegationPeer::USR_UID, $userIdSource );

            $oCriteria->add( AppDelegationPeer::DEL_INDEX, $delIndex );

            $oCriteria->add( AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL );

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

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

            $oDataset->next();

            $aRow = $oDataset->getRow();



            if (! is_array( $aRow )) {

                $result = new wsResponse( 33, G::loadTranslation( 'ID_INVALID_CASE_DELEGATION_INDEX' ) );



                $g->sessionVarRestore();



                return $result;

            }



            $tasUid = $aRow['TAS_UID'];

            $derivation = new Derivation();

            $userList = $derivation->getAllUsersFromAnyTask($tasUid, true);



            if (! in_array( $userIdTarget, $userList )) {

                $result = new wsResponse( 34, G::loadTranslation( 'ID_TARGET_USER_DOES_NOT_HAVE_RIGHTS' ) );



                $g->sessionVarRestore();



                return $result;

            }



            /**

             * ****************( 4 )*****************

             */

            $oCriteria = new Criteria( 'workflow' );

            $oCriteria->add( UsersPeer::USR_STATUS, 'ACTIVE' );

            $oCriteria->add( UsersPeer::USR_UID, $userIdTarget );

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

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

            $oDataset->next();

            $aRow = $oDataset->getRow();



            if (! is_array( $aRow )) {

                $result = new wsResponse( 35, G::loadTranslation( 'ID_TARGET_USER_DESTINATION_INVALID' ) );



                $g->sessionVarRestore();



                return $result;

            }



            /**

             * ****************( 5 )*****************

             */

            $var = $oCase->reassignCase( $caseId, $delIndex, $userIdSource, $userIdTarget );



            if (! $var) {

                $result = new wsResponse( 36, G::loadTranslation( 'ID_CASE_COULD_NOT_REASSIGNED' ) );



                $g->sessionVarRestore();



                return $result;

            }



            $result = new wsResponse( 0, G::loadTranslation( 'ID_COMMAND_EXECUTED_SUCCESSFULLY' ) );



            $g->sessionVarRestore();



            return $result;

        } catch (Exception $e) {

            $result[] = array ('guid' => $e->getMessage(),'name' => $e->getMessage()

            );



            $g->sessionVarRestore();



            return $result;

        }

    }
     $rsSQL = AppDelegationPeer::doSelectRS($criteria);
     $rsSQL->setFetchmode(ResultSet::FETCHMODE_ASSOC);
 
     while ($rsSQL->next()) {
         $row = $rsSQL->getRow();
 
         $current_user_uid = $row["USR_UID"];
     }
 
     if ($current_user_uid != null) {
         $criteria = new Criteria("workflow");
 
         $criteria->addSelectColumn(UsersPeer::USR_USERNAME);
         $criteria->add(UsersPeer::USR_UID, $current_user_uid);
 
         $rsSQL = UsersPeer::doSelectRS($criteria);
         $rsSQL->setFetchmode(ResultSet::FETCHMODE_ASSOC);
 
         $rsSQL->next();
 
         $row = $rsSQL->getRow();
         $currentUsrName = $row["USR_USERNAME"];
 
         $casesFields["APP_DATA"]["USER_LOGGED"]  = $current_user_uid;
         $casesFields["APP_DATA"]["USR_USERNAME"] = $currentUsrName;
     }
 
     foreach ($casesFields["APP_DATA"] as $index => $value) {
         $_SESSION[$index] = $value;
     }
 
Example #25
0
    function getDenpendentUser ($USR_UID)

    {

        //Here the uid to next user

        $oC = new Criteria();

        $oC->addSelectColumn( UsersPeer::USR_REPORTS_TO );

        $oC->add( UsersPeer::USR_UID, $USR_UID );

        $oDataset = UsersPeer::doSelectRS( $oC );

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

        $oDataset->next();

        $aRow = $oDataset->getRow();

        return $aRow['USR_REPORTS_TO'] != '' ? $aRow['USR_REPORTS_TO'] : $USR_UID;

    }
 public function getExtAvailableUsersList($sTaskUID = '', $iType = 2)
 {
     try {
         $oTasks = new Tasks();
         $aAux = $oTasks->getGroupsOfTask($sTaskUID, $iType);
         $aUIDS1 = array();
         $aUIDS2 = array();
         foreach ($aAux as $aGroup) {
             $aUIDS1[] = $aGroup['GRP_UID'];
         }
         $aAux = $oTasks->getUsersOfTask($sTaskUID, $iType);
         foreach ($aAux as $aUser) {
             $aUIDS2[] = $aUser['USR_UID'];
         }
         $aUsers = array();
         $aUsers[] = array('LABEL' => 'char', 'TAS_UID' => 'char', 'USR_UID' => 'char', 'TU_TYPE' => 'integer', 'TU_RELATION' => 'integer');
         $sDelimiter = DBAdapter::getStringDelimiter();
         $oCriteria = new Criteria('workflow');
         $oCriteria->addSelectColumn(GroupwfPeer::GRP_UID);
         $oCriteria->addAsColumn('GRP_TITLE', 'C.CON_VALUE');
         $oCriteria->addAlias('C', 'CONTENT');
         $aConditions = array();
         $aConditions[] = array(GroupwfPeer::GRP_UID, 'C.CON_ID');
         $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter);
         $aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
         $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
         $oCriteria->add(GroupwfPeer::GRP_STATUS, 'ACTIVE');
         $oCriteria->add(GroupwfPeer::GRP_UID, $aUIDS1, Criteria::NOT_IN);
         //$oCriteria->add(GroupwfPeer::GRP_UID, '', Criteria::NOT_EQUAL);
         $oDataset = GroupwfPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         $c = 0;
         while ($aRow = $oDataset->getRow()) {
             $c++;
             $oCriteria = new Criteria('workflow');
             $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');
             $oCriteria->add(GroupUserPeer::GRP_UID, $aRow['GRP_UID']);
             $oDataset2 = GroupUserPeer::doSelectRS($oCriteria);
             $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
             $oDataset2->next();
             $aRow2 = $oDataset2->getRow();
             $aUsers[] = array('LABEL' => $aRow['GRP_TITLE'] . ' <a href="#" onclick="usersGroup(\'' . $aRow['GRP_UID'] . '\', \'' . $c . '\');return false;"><font color="green"><strong>(' . $aRow2['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation('ID_USER') : G::LoadTranslation('ID_USERS')) . ')</strong></font></a> <br /><div id="users' . $c . '" style="display: none"></div>', 'TAS_UID' => $sTaskUID, 'USR_UID' => $aRow['GRP_UID'], 'TU_TYPE' => $iType, 'TU_RELATION' => 2);
             $oDataset->next();
         }
         $sDelimiter = DBAdapter::getStringDelimiter();
         $oCriteria = new Criteria('workflow');
         $oCriteria->addSelectColumn(UsersPeer::USR_UID);
         $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
         $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
         $oCriteria->add(UsersPeer::USR_STATUS, 'ACTIVE');
         $oCriteria->add(UsersPeer::USR_UID, $aUIDS2, Criteria::NOT_IN);
         $oDataset = UsersPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         while ($aRow = $oDataset->getRow()) {
             $aUsers[] = array('LABEL' => $aRow['USR_FIRSTNAME'] . ' ' . $aRow['USR_LASTNAME'], 'TAS_UID' => $sTaskUID, 'USR_UID' => $aRow['USR_UID'], 'TU_TYPE' => $iType, 'TU_RELATION' => 1);
             $oDataset->next();
         }
         global $_DBArray;
         $_DBArray = isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '';
         $_DBArray['availableUsers'] = $aUsers;
         $_SESSION['_DBArray'] = $_DBArray;
         return $_SESSION['_DBArray']['availableUsers'];
     } catch (Exception $oError) {
         throw $oError;
     }
 }
Example #27
0
     $gif = '<img width="13" height="13" border="0" src="' . $img . '">';
     $aFields['DESCRIPTION'] = $span . $gif . $aFields['DESCRIPTION'];
     print G::json_encode($aFields);
     break;
 case 'testUsername':
     require_once 'classes/model/Users.php';
     $_POST['NEW_USERNAME'] = trim($_POST['NEW_USERNAME']);
     $USR_UID = isset($_POST['USR_UID']) ? $_POST['USR_UID'] : '';
     $response = array("success" => true);
     $oCriteria = new Criteria();
     $oCriteria->addSelectColumn(UsersPeer::USR_USERNAME);
     $oCriteria->add(UsersPeer::USR_USERNAME, utf8_encode($_POST['NEW_USERNAME']));
     if ($USR_UID != '') {
         $oCriteria->add(UsersPeer::USR_UID, array($_POST['USR_UID']), Criteria::NOT_IN);
     }
     $oDataset = UsersPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     $aRow = $oDataset->getRow();
     if (is_array($aRow) || $_POST['NEW_USERNAME'] == '') {
         $color = 'red';
         $img = '/images/delete.png';
         $dataVar['USER_ID'] = $_POST['NEW_USERNAME'];
         $text = G::LoadTranslation('ID_USERNAME_ALREADY_EXISTS', $dataVar);
         $text = $_POST['NEW_USERNAME'] == '' ? G::LoadTranslation('ID_MSG_ERROR_USR_USERNAME') : $text;
         $response['exists'] = true;
     } else {
         $color = 'green';
         $img = '/images/dialog-ok-apply.png';
         $text = G::LoadTranslation('ID_USERNAME_CORRECT');
         $response['exists'] = false;
Example #28
0
 /**
  * Method to do selects.
  *
  * @param      Criteria $criteria The Criteria object used to build the SELECT statement.
  * @param      Connection $con
  * @return     array Array of selected Objects
  * @throws     PropelException Any exceptions caught during processing will be
  *       rethrown wrapped into a PropelException.
  */
 public static function doSelect(Criteria $criteria, $con = null)
 {
     return UsersPeer::populateObjects(UsersPeer::doSelectRS($criteria, $con));
 }
Example #29
0
 function getUserArray($action, $userUid)
 {
     global $oAppCache;
     $status = array();
     $users[] = array("CURRENT_USER", G::LoadTranslation("ID_CURRENT_USER"));
     $users[] = array("ALL", G::LoadTranslation("ID_ALL_USERS"));
     //now get users, just for the Search action
     switch ($action) {
         case 'search_simple':
         case 'search':
             $cUsers = new Criteria('workflow');
             $cUsers->clearSelectColumns();
             $cUsers->addSelectColumn(UsersPeer::USR_UID);
             $cUsers->addSelectColumn(UsersPeer::USR_FIRSTNAME);
             $cUsers->addSelectColumn(UsersPeer::USR_LASTNAME);
             $oDataset = UsersPeer::doSelectRS($cUsers);
             $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
             $oDataset->next();
             while ($aRow = $oDataset->getRow()) {
                 $users[] = array($aRow['USR_UID'], htmlentities($aRow['USR_LASTNAME'] . ' ' . $aRow['USR_FIRSTNAME'], ENT_QUOTES, "UTF-8"));
                 $oDataset->next();
             }
             break;
         default:
             return $users;
             break;
     }
     return $users;
 }
Example #30
0
    /**

     * Migrate all cases to New list

     *

     * return all LIST TABLES with data

     */

    public function migrateList ($workSpace)

    {

        if ($this->listFirstExecution('check')) {

            return 1;

        }

        $this->initPropel(true);

        $appCache = new AppCacheView();

        $users    = new Users();

        G::LoadClass("case");

        $case = new Cases();



        //Select data CANCELLED

        $canCriteria = $appCache->getSelAllColumns();

        $canCriteria->add(AppCacheViewPeer::APP_STATUS, "CANCELLED", CRITERIA::EQUAL);

        $canCriteria->add(AppCacheViewPeer::DEL_LAST_INDEX, "1", CRITERIA::EQUAL);

        $rsCriteria = AppCacheViewPeer::doSelectRS($canCriteria);

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

        //Insert data LIST_CANCELED

        while ($rsCriteria->next()) {

              $row = $rsCriteria->getRow();

              $listCanceled = new ListCanceled();

              $listCanceled->remove($row["APP_UID"]);

              $listCanceled->setDeleted(false);

              $listCanceled->create($row);

        }

        CLI::logging("> Completed table LIST_CANCELED\n");



        //Select data COMPLETED

        $comCriteria = $appCache->getSelAllColumns();

        $comCriteria->add(AppCacheViewPeer::APP_STATUS, "COMPLETED", CRITERIA::EQUAL);

        $comCriteria->add(AppCacheViewPeer::DEL_LAST_INDEX, "1", CRITERIA::EQUAL);

        $rsCriteria = AppCacheViewPeer::doSelectRS($comCriteria);

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

        //Insert new data LIST_COMPLETED

        while ($rsCriteria->next()) {

              $row = $rsCriteria->getRow();

              $listCompleted = new ListCompleted();

              $listCompleted->remove($row["APP_UID"]);

              $listCompleted->setDeleted(false);

              $listCompleted->create($row);

        }

        CLI::logging("> Completed table LIST_COMPLETED\n");



        //Select data TO_DO OR DRAFT

        $inbCriteria = $appCache->getSelAllColumns();

        $rsCriteria = AppCacheViewPeer::doSelectRS($inbCriteria);

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



        $criteriaUser = new Criteria();

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

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

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

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

        //Insert new data LIST_INBOX

        while ($rsCriteria->next()) {

            $row = $rsCriteria->getRow();

            $isSelfService = ($row['USR_UID'] == '') ? true : false;

            if($row["DEL_THREAD_STATUS"] == 'OPEN'){

                //Update information about the previous_user

                $row["DEL_PREVIOUS_USR_UID"] = $row["PREVIOUS_USR_UID"];

                $criteriaUser->add( UsersPeer::USR_UID, $row["PREVIOUS_USR_UID"] );

                $datasetU = UsersPeer::doSelectRS($criteriaUser);

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

                $datasetU->next();

                $arrayUsers = $datasetU->getRow();

                $row["DEL_PREVIOUS_USR_USERNAME"] = $arrayUsers["USR_USERNAME"];

                $row["DEL_PREVIOUS_USR_FIRSTNAME"]= $arrayUsers["USR_FIRSTNAME"];

                $row["DEL_PREVIOUS_USR_LASTNAME"] = $arrayUsers["USR_LASTNAME"];

                //Update the due date

                $row["DEL_DUE_DATE"]         = $row["DEL_TASK_DUE_DATE"];

                $listInbox = new ListInbox();

                $listInbox->remove($row["APP_UID"],$row["DEL_INDEX"]);

                $listInbox->setDeleted(false);

                $listInbox->create($row, $isSelfService);

            } else {

                // create participated List when the thread is CLOSED

                $listParticipatedHistory = new ListParticipatedHistory();

                $listParticipatedHistory->remove($row['APP_UID'], $row['DEL_INDEX']);

                $listParticipatedHistory = new ListParticipatedHistory();

                $listParticipatedHistory->create($row);



                $oCriteria = new Criteria('workflow');

                $oCriteria->add(ListParticipatedLastPeer::APP_UID, $row['APP_UID']);

                $oCriteria->add(ListParticipatedLastPeer::USR_UID, $row['USR_UID']);

                ListParticipatedLastPeer::doDelete($oCriteria);



                $listParticipatedLast = new ListParticipatedLast();

                $listParticipatedLast->create($row);

                $listParticipatedLast = new ListParticipatedLast();

                $listParticipatedLast->refresh($row);

            }



        }



        CLI::logging("> Completed table LIST_INBOX\n");

        //With this List is populated the LIST_PARTICIPATED_HISTORY and LIST_PARTICIPATED_LAST

        CLI::logging("> Completed table LIST_PARTICIPATED_HISTORY\n");

        CLI::logging("> Completed table LIST_PARTICIPATED_LAST\n");



        //Select data TO_DO OR DRAFT CASES CREATED BY AN USER

        $myiCriteria = $appCache->getSelAllColumns();

        $myiCriteria->add(AppCacheViewPeer::DEL_INDEX, "1", CRITERIA::EQUAL);

        $rsCriteria = AppCacheViewPeer::doSelectRS($myiCriteria);

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

        //Insert new data LIST_MY_INBOX

        while ($rsCriteria->next()) {

              $row = $rsCriteria->getRow();

              $listMyInbox = new ListMyInbox();

              $listMyInbox ->remove($row["APP_UID"],$row["USR_UID"]);

              $listMyInbox->setDeleted(false);

              $listMyInbox->create($row);

        }

        CLI::logging("> Completed table LIST_MY_INBOX\n");



        //Select data PAUSED

        $delaycriteria = new Criteria("workflow");

        $delaycriteria->addSelectColumn(AppDelayPeer::APP_UID);

        $delaycriteria->addSelectColumn(AppDelayPeer::PRO_UID);

        $delaycriteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX);

        $delaycriteria->addSelectColumn(AppCacheViewPeer::APP_NUMBER);

        $delaycriteria->addSelectColumn(AppCacheViewPeer::USR_UID);

        $delaycriteria->addSelectColumn(AppCacheViewPeer::APP_STATUS);

        $delaycriteria->addSelectColumn(AppCacheViewPeer::TAS_UID);



        $delaycriteria->addJoin( AppCacheViewPeer::APP_UID, AppDelayPeer::APP_UID . ' AND ' . AppCacheViewPeer::DEL_INDEX . ' = ' . AppDelayPeer::APP_DEL_INDEX, Criteria::INNER_JOIN );

        $delaycriteria->add(AppDelayPeer::APP_DISABLE_ACTION_USER, "0", CRITERIA::EQUAL);

        $delaycriteria->add(AppDelayPeer::APP_TYPE, "PAUSE", CRITERIA::EQUAL);

        $rsCriteria = AppDelayPeer::doSelectRS($delaycriteria);

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

        //Insert new data LIST_PAUSED

        while ($rsCriteria->next()) {

              $row = $rsCriteria->getRow();

              $data = $row;

              $data["DEL_INDEX"] = $row["APP_DEL_INDEX"];

              $listPaused = new ListPaused();

              $listPaused ->remove($row["APP_UID"],$row["APP_DEL_INDEX"],$data);

              $listPaused->setDeleted(false);

              $listPaused->create($data);

        }

        CLI::logging("> Completed table LIST_PAUSED\n");



        //Select and Insert LIST_UNASSIGNED

        $unaCriteria = $appCache->getSelAllColumns();

        $unaCriteria->add(AppCacheViewPeer::USR_UID, "", CRITERIA::EQUAL);

        $rsCriteria = AppCacheViewPeer::doSelectRS($unaCriteria);

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

        $del = new ListUnassignedPeer();

        $del->doDeleteAll();

        $del = new ListUnassignedGroupPeer();

        $del->doDeleteAll();

        while ($rsCriteria->next()) {

            $row = $rsCriteria->getRow();

            $listUnassigned = new ListUnassigned();

            $unaUid = $listUnassigned->generateData($row["APP_UID"],$row["PREVIOUS_USR_UID"]);

        }

        CLI::logging("> Completed table LIST_UNASSIGNED\n");

        CLI::logging("> Completed table LIST_UNASSIGNED_GROUP\n");



        // ADD LISTS COUNTS

        $aTypes = array(

            'to_do',

            'draft',

            'cancelled',

            'sent',

            'paused',

            'completed',

            'selfservice'

        );



        $users = new Users();

        $criteria = new Criteria();

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

        $dataset = UsersPeer::doSelectRS($criteria);

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

        while($dataset->next()) {

            $aRow = $dataset->getRow();

            $oAppCache = new AppCacheView();

            $aCount = $oAppCache->getAllCounters( $aTypes, $aRow['USR_UID'] );

            $newData = array(

                'USR_UID'                   => $aRow['USR_UID'],

                'USR_TOTAL_INBOX'           => $aCount['to_do'],

                'USR_TOTAL_DRAFT'           => $aCount['draft'],

                'USR_TOTAL_CANCELLED'       => $aCount['cancelled'],

                'USR_TOTAL_PARTICIPATED'    => $aCount['sent'],

                'USR_TOTAL_PAUSED'          => $aCount['paused'],

                'USR_TOTAL_COMPLETED'       => $aCount['completed'],

                'USR_TOTAL_UNASSIGNED'      => $aCount['selfservice']

            );

            $users->update($newData);

        }

        $this->listFirstExecution('insert');

        return true;

    }