. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. * */ try { global $RBAC; switch ($RBAC->userCanAccess('PM_LOGIN')) { case -2: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels'); G::header('location: ../login/login'); die; break; case -1: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header('location: ../login/login'); die; break; } G::LoadInclude('ajax'); if (isset($_POST['form'])) { $_POST = $_POST['form']; } if(isset($_REQUEST['function'])){ //$value= $_POST['function']; $value = get_ajax_value('function'); }else{ //$value= $_POST['functions']; $value = get_ajax_value('functions'); } switch ($value){ case 'verifyUsername': //print_r($_POST); die; $_POST['sOriginalUsername'] = get_ajax_value('sOriginalUsername'); $_POST['sUsername'] = get_ajax_value('sUsername'); if ($_POST['sOriginalUsername'] == $_POST['sUsername']) { echo '0'; } else { require_once 'classes/model/Users.php'; G::LoadClass('Users'); $oUser = new Users(); $oCriteria=$oUser->loadByUsername($_POST['sUsername']); $oDataset = UsersPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $aRow = $oDataset->getRow(); //print_r($aRow); die; //if (!$aRow) if (!is_array($aRow)) { echo '0'; } else { echo '1'; } } break; case 'availableUsers': G::LoadClass('processMap'); $oProcessMap = new ProcessMap(); global $G_PUBLISH; $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent('propeltable', 'paged-table', 'users/users_AvailableUsers', $oProcessMap->getAvailableUsersCriteria($_GET['sTask'], $_GET['iType'])); G::RenderPage('publish', 'raw'); break; case 'assign': G::LoadClass('tasks'); $oTasks = new Tasks(); switch ((int)$_POST['TU_RELATION']) { case 1: echo $oTasks->assignUser($_POST['TAS_UID'], $_POST['USR_UID'], $_POST['TU_TYPE']); break; case 2: echo $oTasks->assignGroup($_POST['TAS_UID'], $_POST['USR_UID'], $_POST['TU_TYPE']); break; } break; case 'ofToAssign': G::LoadClass('tasks'); $oTasks = new Tasks(); switch ((int)$_POST['TU_RELATION']) { case 1: echo $oTasks->ofToAssignUser($_POST['TAS_UID'], $_POST['USR_UID'], $_POST['TU_TYPE']); break; case 2: echo $oTasks->ofToAssignGroup($_POST['TAS_UID'], $_POST['USR_UID'], $_POST['TU_TYPE']); break; } break; case 'changeView': $_SESSION['iType'] = $_POST['TU_TYPE']; break; case 'deleteGroup': G::LoadClass('groups'); $oGroup = new Groups(); $oGroup->removeUserOfGroup($_POST['GRP_UID'], $_POST['USR_UID']); $_GET['sUserUID'] = $_POST['USR_UID']; $G_PUBLISH = new Publisher; $G_PUBLISH->AddContent('view', 'users/users_Tree' ); G::RenderPage('publish', 'raw'); break; case 'showUserGroupInterface': $_GET['sUserUID'] = $_POST['sUserUID']; $G_PUBLISH = new Publisher; $G_PUBLISH->AddContent('view', 'users/users_AssignGroup' ); G::RenderPage('publish', 'raw'); break; case 'showUserGroups': $_GET['sUserUID'] = $_POST['sUserUID']; $G_PUBLISH = new Publisher; $G_PUBLISH->AddContent('view', 'users/users_Tree' ); G::RenderPage('publish', 'raw'); break; case 'assignUserToGroup': G::LoadClass('groups'); $oGroup = new Groups(); $oGroup->addUserToGroup($_POST['GRP_UID'], $_POST['USR_UID']); echo '

'.G::LoadTranslation('ID_MSG_ASSIGN_DONE').'

'; break; case 'usersGroup': G::LoadClass('groups'); $oGroup = new Groups(); $aGroup = $oGroup->getUsersOfGroup($_POST['GRP_UID']); foreach ($aGroup as $iIndex => $aValues) { echo $aValues['USR_FIRSTNAME'] . ' ' . $aValues['USR_LASTNAME'] . '
'; } break; case 'canDeleteUser': G::LoadClass('case'); $oProcessMap = new Cases(); $USR_UID = $_POST['uUID']; $total = 0; $history = 0; $c = $oProcessMap->getCriteriaUsersCases('TO_DO', $USR_UID); $total += ApplicationPeer::doCount($c); $c = $oProcessMap->getCriteriaUsersCases('DRAFT', $USR_UID); $total += ApplicationPeer::doCount($c); $c = $oProcessMap->getCriteriaUsersCases('COMPLETED', $USR_UID); $history += ApplicationPeer::doCount($c); $c = $oProcessMap->getCriteriaUsersCases('CANCELLED', $USR_UID); $history += ApplicationPeer::doCount($c); $response = '{success: true, candelete: '; $response .= ($total > 0) ? 'false' : 'true'; $response .= ', hashistory: '; $response .= ($history > 0) ? 'true' : 'false'; $response .= '}'; echo $response; break; case 'deleteUser': $UID = $_POST['USR_UID']; G::LoadClass('tasks'); $oTasks = new Tasks(); $oTasks->ofToAssignUserOfAllTasks($UID); G::LoadClass('groups'); $oGroups = new Groups(); $oGroups->removeUserOfAllGroups($UID); $RBAC->changeUserStatus($UID, 'CLOSED'); $_GET['USR_USERNAME']=''; $RBAC->updateUser(array('USR_UID' => $UID, 'USR_USERNAME' => $_GET['USR_USERNAME']),''); require_once 'classes/model/Users.php'; $oUser = new Users(); $aFields = $oUser->load($UID); $aFields['USR_STATUS'] = 'CLOSED'; $aFields['USR_USERNAME'] = ''; $oUser->update($aFields); break; case 'availableGroups': G::LoadClass('groups'); $filter = (isset($_POST['textFilter']))? $_POST['textFilter'] : ''; $groups = new Groups(); $criteria = $groups->getAvailableGroupsCriteria($_REQUEST['uUID'],$filter); $objects = GroupwfPeer::doSelectRS($criteria); $objects->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); $arr = Array(); while ($objects->next()){ $arr[] = $objects->getRow(); } echo '{groups: '.G::json_encode($arr).'}'; break; case 'assignedGroups': G::LoadClass('groups'); $filter = (isset($_POST['textFilter']))? $_POST['textFilter'] : ''; $groups = new Groups(); $criteria = $groups->getAssignedGroupsCriteria($_REQUEST['uUID'],$filter); $objects = GroupwfPeer::doSelectRS($criteria); $objects->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); $arr = Array(); while ($objects->next()){ $arr[] = $objects->getRow(); } echo '{groups: '.G::json_encode($arr).'}'; break; case 'assignGroupsToUserMultiple': $USR_UID = $_POST['USR_UID']; $gUIDs = explode(',',$_POST['GRP_UID']); G::LoadClass('groups'); $oGroup = new Groups(); foreach ($gUIDs as $GRP_UID){ $oGroup->addUserToGroup($GRP_UID, $USR_UID); } break; case 'deleteGroupsToUserMultiple': $USR_UID = $_POST['USR_UID']; $gUIDs = explode(',',$_POST['GRP_UID']); G::LoadClass('groups'); $oGroup = new Groups(); foreach ($gUIDs as $GRP_UID){ $oGroup->removeUserOfGroup($GRP_UID, $USR_UID); } break; case 'authSources': $criteria = $RBAC->getAllAuthSources(); $objects = AuthenticationSourcePeer::doSelectRS($criteria); $objects->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); $arr = Array(); if (isset($_REQUEST['cmb'])){ if ($_REQUEST['cmb'] == 'yes'){ $started = Array(); $started['AUTH_SOURCE_UID'] = ''; $started['AUTH_SOURCE_SHOW'] = G::LoadTranslation('ID_ALL'); $arr[] = $started; } } $started = Array(); $started['AUTH_SOURCE_UID'] = '00000000000000000000000000000000'; //$started['AUTH_SOURCE_NAME'] = 'ProcessMaker'; //$started['AUTH_SOURCE_TYPE'] = 'MYSQL'; $started['AUTH_SOURCE_SHOW'] = 'ProcessMaker (MYSQL)'; $arr[] = $started; while ($objects->next()){ $row = $objects->getRow(); $aux = Array(); $aux['AUTH_SOURCE_UID'] = $row['AUTH_SOURCE_UID']; //$aux['AUTH_SOURCE_NAME'] = $row['AUTH_SOURCE_NAME']; //$aux['AUTH_SOURCE_TYPE'] = $row['AUTH_SOURCE_TYPE']; $aux['AUTH_SOURCE_SHOW'] = $row['AUTH_SOURCE_NAME'].' ('.$row['AUTH_SOURCE_PROVIDER'].')'; $arr[] = $aux; } echo '{sources: '.G::json_encode($arr).'}'; break; case 'loadAuthSourceByUID': require_once 'classes/model/Users.php'; $oCriteria=$RBAC->load($_POST['uUID']); $UID_AUTH = $oCriteria['UID_AUTH_SOURCE']; if (($UID_AUTH!='00000000000000000000000000000000')&&($UID_AUTH!='')){ $aux = $RBAC->getAuthSource($UID_AUTH); $arr = Array(); $arr['AUTH_SOURCE_NAME'] = $aux['AUTH_SOURCE_NAME'].' ('.$aux['AUTH_SOURCE_PROVIDER'].')'; $arr['AUTH_SOURCE_PROVIDER'] = $aux['AUTH_SOURCE_PROVIDER']; $aFields = $arr; }else{ $arr = Array(); $arr['AUTH_SOURCE_NAME'] = 'ProcessMaker (MYSQL)'; $arr['AUTH_SOURCE_PROVIDER'] = 'MYSQL'; $aFields = $arr; } $res = Array(); $res['data'] = $oCriteria; $res['auth'] = $aFields; echo G::json_encode($res); break; case 'updateAuthServices': $aData = $RBAC->load($_POST['usr_uid']); unset($aData['USR_ROLE']); $auth_uid = $_POST['auth_source']; $auth_uid2 = $_POST['auth_source_uid']; if ($auth_uid == $auth_uid2){ $auth_uid = $aData['UID_AUTH_SOURCE']; } if (($auth_uid=='00000000000000000000000000000000')||($auth_uid=='')){ $aData['USR_AUTH_TYPE'] = 'MYSQL'; $aData['UID_AUTH_SOURCE'] = ''; }else{ $aFields = $RBAC->getAuthSource($auth_uid); $aData['USR_AUTH_TYPE'] = $aFields['AUTH_SOURCE_PROVIDER']; $aData['UID_AUTH_SOURCE'] = $auth_uid; } if (isset($_POST['auth_dn'])){ $auth_dn = $_POST['auth_dn']; }else{ $auth_dn = ""; } $aData['USR_AUTH_USER_DN'] = $auth_dn; $RBAC->updateUser($aData); echo '{success: true}'; break; case 'usersList': require_once 'classes/model/Users.php'; require_once 'classes/model/LoginLog.php'; require_once 'classes/model/Department.php'; require_once 'classes/model/AppCacheView.php'; global $RBAC; G::LoadClass('configuration'); $co = new Configurations(); $config = $co->getConfiguration('usersList', 'pageSize','',$_SESSION['USER_LOGGED']); $limit_size = isset($config['pageSize']) ? $config['pageSize'] : 20; $start = isset($_REQUEST['start']) ? $_REQUEST['start'] : 0; $limit = isset($_REQUEST['limit']) ? $_REQUEST['limit'] : $limit_size; $filter = isset($_REQUEST['textFilter']) ? $_REQUEST['textFilter'] : ''; $auths = isset($_REQUEST['auths']) ? $_REQUEST['auths'] : ''; $aUsers = Array(); if ($auths != ''){ $aUsers = $RBAC->getListUsersByAuthSource($auths); } $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn('COUNT(*) AS CNT'); if ($filter != ''){ $cc = $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->add($cc); } $oCriteria->add(UsersPeer::USR_STATUS, array('CLOSED'), Criteria::NOT_IN); if ($auths != ''){ $totalRows = sizeof($aUsers); }else{ $oDataset = UsersPeer::DoSelectRs ($oCriteria); $oDataset->setFetchmode (ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $row = $oDataset->getRow(); $totalRows = $row['CNT']; } $oCriteria->clearSelectColumns(); $oCriteria->addSelectColumn(UsersPeer::USR_UID); $oCriteria->addSelectColumn(UsersPeer::USR_USERNAME); $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME); $oCriteria->addSelectColumn(UsersPeer::USR_EMAIL); $oCriteria->addSelectColumn(UsersPeer::USR_ROLE); $oCriteria->addSelectColumn(UsersPeer::USR_DUE_DATE); $oCriteria->addSelectColumn(UsersPeer::USR_STATUS); $oCriteria->addSelectColumn(UsersPeer::USR_UX); $oCriteria->addSelectColumn(UsersPeer::DEP_UID); $oCriteria->addAsColumn('LAST_LOGIN', 0); $oCriteria->addAsColumn('DEP_TITLE', 0); $oCriteria->addAsColumn('TOTAL_CASES', 0); $oCriteria->addAsColumn('DUE_DATE_OK', 1); $sep = "'"; $oCriteria->add(UsersPeer::USR_STATUS, array('CLOSED'), Criteria::NOT_IN); if ($filter != ''){ $cc = $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->add($cc); } // $sw_add = false; // for ($i=0; $i < sizeof($aUsers); $i++){ // if ($i>0){ // $tmpL = $tmpL->addOr($oCriteria->getNewCriterion(UsersPeer::USR_UID, $aUsers[$i],Criteria::EQUAL)); // }else{ // $uList = $oCriteria->getNewCriterion(UsersPeer::USR_UID, $aUsers[$i],Criteria::EQUAL); // $tmpL = $uList; // $sw_add = true; // } // } // if ($sw_add) $oCriteria->add($uList); if (sizeof($aUsers) > 0){ $oCriteria->add(UsersPeer::USR_UID, $aUsers, Criteria::IN); }else if ($totalRows==0 && $auths != ''){ $oCriteria->add(UsersPeer::USR_UID,'',Criteria::IN); } $oCriteria->setOffset($start); $oCriteria->setLimit($limit); $oDataset = UsersPeer::DoSelectRs ($oCriteria); $oDataset->setFetchmode (ResultSet::FETCHMODE_ASSOC); $Login = new LoginLog(); $aLogin = $Login->getLastLoginAllUsers(); $Cases = new AppCacheView(); $aCases = $Cases->getTotalCasesByAllUsers(); $Department = new Department(); $aDepart = $Department->getAllDepartmentsByUser(); $aAuthSources = $RBAC->getAllAuthSourcesByUser(); require_once PATH_CONTROLLERS . 'adminProxy.php'; $uxList = adminProxy::getUxTypesList(); $rows = Array(); while($oDataset->next()){ $row = $oDataset->getRow(); $row['DUE_DATE_OK'] = (date('Y-m-d')>date('Y-m-d',strtotime($row['USR_DUE_DATE'])))? 0 : 1; $row['LAST_LOGIN'] = isset($aLogin[$row['USR_UID']]) ? $aLogin[$row['USR_UID']] : ''; $row['TOTAL_CASES'] = isset($aCases[$row['USR_UID']]) ? $aCases[$row['USR_UID']] : 0; $row['DEP_TITLE'] = isset($aDepart[$row['USR_UID']]) ? $aDepart[$row['USR_UID']] : ''; $row['USR_UX'] = isset($uxList[$row['USR_UX']]) ? $uxList[$row['USR_UX']] : $uxList['NORMAL']; $row['USR_AUTH_SOURCE'] = isset($aAuthSources[$row['USR_UID']]) ? $aAuthSources[$row['USR_UID']] : 'ProcessMaker (MYSQL)'; $rows[] = $row; } echo '{users: '.G::json_encode($rows).', total_users: '.$totalRows.'}'; break; case 'updatePageSize': G::LoadClass('configuration'); $c = new Configurations(); $arr['pageSize'] = $_REQUEST['size']; $arr['dateSave'] = date('Y-m-d H:i:s'); $config = Array(); $config[] = $arr; $c->aConfig = $config; $c->saveConfig('usersList', 'pageSize','',$_SESSION['USER_LOGGED']); echo '{success: true}'; break; case 'summaryUserData': require_once 'classes/model/Users.php'; require_once 'classes/model/Department.php'; require_once 'classes/model/AppCacheView.php'; G::LoadClass('configuration'); $oUser = new Users(); // $data = $oUser->load($_REQUEST['USR_UID']); $data = $oUser->loadDetailed($_REQUEST['USR_UID']); $oAppCache = new AppCacheView(); $aTypes = Array(); $aTypes['to_do'] = 'CASES_INBOX'; $aTypes['draft'] = 'CASES_DRAFT'; $aTypes['cancelled'] = 'CASES_CANCELLED'; $aTypes['sent'] = 'CASES_SENT'; $aTypes['paused'] = 'CASES_PAUSED'; $aTypes['completed'] = 'CASES_COMPLETED'; $aTypes['selfservice'] = 'CASES_SELFSERVICE'; $aCount = $oAppCache->getAllCounters( array_keys($aTypes), $_REQUEST['USR_UID']); $dep = new Department(); if ($dep->existsDepartment($data['DEP_UID'])){ $dep->Load($data['DEP_UID']); $dep_name = $dep->getDepTitle(); }else{ $dep_name = ''; } if ($data['USR_REPLACED_BY']!=''){ $user = new Users(); $u = $user->load($data['USR_REPLACED_BY']); $c = new Configurations(); $replaced_by = $c->usersNameFormat($u['USR_USERNAME'], $u['USR_FIRSTNAME'], $u['USR_LASTNAME']); }else{ $replaced_by = ''; } $misc = Array(); $misc['DEP_TITLE'] = $dep_name; $misc['REPLACED_NAME'] = $replaced_by; echo '{success: true, userdata: '.G::json_encode($data).', cases: '.G::json_encode($aCount).', misc: '.G::json_encode($misc).'}'; break; } } catch (Exception $oException) { die($oException->getMessage()); } ?>