function skinList() { G::loadClass('system'); $skinList = System::getSkingList(); $wildcard = ''; if (isset($_REQUEST['activeskin'])) { $wildcard = '@'; } $filterList = array(); if (defined('PARTNER_FLAG')) { $filterList = array('00000000000000000000000000000001', '00000000000000000000000000000002'); } foreach ($skinList['skins'] as $key => $value) { if (!isset($value['SKIN_ID']) || !in_array($value['SKIN_ID'], $filterList)) { if ($value['SKIN_FOLDER_ID'] != 'simplified' && $value['SKIN_FOLDER_ID'] != 'uxs' && $value['SKIN_FOLDER_ID'] != 'uxmodern') { if ($skinList['currentSkin'] == $value['SKIN_FOLDER_ID']) { $value['SKIN_STATUS'] = $wildcard . G::LoadTranslation('ID_ACTIVE'); $value['SKIN_NAME'] = $wildcard . $value['SKIN_NAME']; $value['SKIN_WORKSPACE'] = $wildcard . $value['SKIN_WORKSPACE']; $value['SKIN_DESCRIPTION'] = $wildcard . $value['SKIN_DESCRIPTION']; $value['SKIN_AUTHOR'] = $wildcard . $value['SKIN_AUTHOR']; $value['SKIN_CREATEDATE'] = $wildcard . $value['SKIN_CREATEDATE']; $value['SKIN_MODIFIEDDATE'] = $wildcard . $value['SKIN_MODIFIEDDATE']; } else { $value['SKIN_STATUS'] = G::LoadTranslation('ID_INACTIVE'); } $skinListArray['skins'][] = $value; } } } $skinListArray['currentSkin'] = $skinList['currentSkin']; echo G::json_encode($skinListArray); }
public function system() { require_once PATH_CONTROLLERS . 'main.php'; G::loadClass('system'); $skinsList = System::getSkingList(); foreach ($skinsList['skins'] as $key => $value) { if ($value['SKIN_WORKSPACE'] != 'Global') { unset($skinsList['skins'][$key]); } } $skins = array(); $timeZonesList = System::getAllTimeZones(); $timeZonesList = array_keys($timeZonesList); $mainController = new Main(); $languagesList = $mainController->getLanguagesList(); $sysConf = System::getSystemConfiguration(PATH_CONFIG . 'env.ini'); foreach ($skinsList['skins'] as $skin) { $skins[] = array($skin['SKIN_FOLDER_ID'], $skin['SKIN_NAME']); } foreach ($timeZonesList as $tz) { $timeZones[] = array($tz, $tz); } $this->includeExtJS('admin/system'); //G::LoadClass('configuration'); // $c = new Configurations(); // $configPage = $c->getConfiguration('usersList', 'pageSize','',$_SESSION['USER_LOGGED']); // $Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20; $this->setJSVar('skinsList', $skins); $this->setJSVar('languagesList', $languagesList); $this->setJSVar('timeZonesList', $timeZones); $this->setJSVar('sysConf', $sysConf); G::RenderPage('publish', 'extJs'); }
/** * getting default list * @param string $httpData (opional) */ public function index($httpData) { if ($this->userUxType == 'SINGLE') { $this->indexSingle($httpData); return; } require_once 'classes/model/UsersProperties.php'; G::LoadClass('process'); G::LoadClass('case'); $userProperty = new UsersProperties(); $process = new Process(); $case = new Cases(); G::loadClass('system'); $sysConf = System::getSystemConfiguration(PATH_CONFIG . 'env.ini'); //Get ProcessStatistics Info $start = 0; $limit = ''; $proData = $process->getAllProcesses($start, $limit); $processList = $case->getStartCasesPerType($_SESSION['USER_LOGGED'], 'category'); $switchLink = $userProperty->getUserLocation($_SESSION['USER_LOGGED']); if (substr($sysConf['default_skin'], 0, 2) == 'ux') { $_SESSION['_defaultUserLocation'] = $switchLink; $switchLink = '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . $sysConf['default_skin'] . '/main'; } unset($processList[0]); //Get simplified options global $G_TMP_MENU; $mnu = new Menu(); $mnu->load('simplified'); $arrayMnuOption = array(); $mnuNewCase = array(); if (!empty($mnu->Options)) { foreach ($mnu->Options as $index => $value) { $option = array('id' => $mnu->Id[$index], 'url' => $mnu->Options[$index], 'label' => $mnu->Labels[$index], 'icon' => $mnu->Icons[$index], 'class' => $mnu->ElementClass[$index]); if ($mnu->Id[$index] != 'S_NEW_CASE') { $arrayMnuOption[] = $option; } else { $mnuNewCase = $option; } } } $this->setView('home/index'); $this->setVar('usrUid', $this->userID); $this->setVar('userName', $this->userName); $this->setVar('processList', $processList); $this->setVar('canStartCase', $case->canStartCase($_SESSION['USER_LOGGED'])); $this->setVar('userUxType', $this->userUxType); $this->setVar('clientBrowser', $this->clientBrowser['name']); $this->setVar('switchLink', $switchLink); $this->setVar('arrayMnuOption', $arrayMnuOption); $this->setVar('mnuNewCase', $mnuNewCase); $this->render(); }
/** * edit pmtable * * @param string $httpData->id */ public function edit($httpData) { require_once PATH_CONTROLLERS . 'pmTablesProxy.php'; require_once 'classes/model/AdditionalTables.php'; G::loadClass('pmTable'); $additionalTables = new AdditionalTables(); $table = false; $addTabUid = isset($httpData->id) ? $httpData->id : false; $dataNumRows = 0; $repTabPluginPermissions = false; $columnsTypes = PmTable::getPropelSupportedColumnTypes(); $jsFile = isset($httpData->tableType) && $httpData->tableType == 'report' ? 'editReport' : 'edit'; $columnsTypesList = array(); foreach ($columnsTypes as $columnTypeName => $columnType) { $columnsTypesList[] = array($columnTypeName, $columnType); } if ($addTabUid) { $tableData = $additionalTables->getAllData($httpData->id, 0, 2); $dataNumRows = $tableData['count']; } if ($addTabUid !== false) { // if it is a edit request $tableFields = array(); $fieldsList = array(); $table = $additionalTables->load($addTabUid, true); //fix for backware compatibility $table['DBS_UID'] = $table['DBS_UID'] == null || $table['DBS_UID'] == '' ? 'workflow' : $table['DBS_UID']; $_SESSION['ADD_TAB_UID'] = $addTabUid; //list dynaform fields if ($table['ADD_TAB_TYPE'] == 'NORMAL' || $table['ADD_TAB_TYPE'] == 'GRID') { $repTabPluginPermissions = $this->_getSimpleReportPluginDef(); } } $this->includeExtJS('pmTables/' . $jsFile); $this->setJSVar('flagProcessmap', isset($_REQUEST['flagProcessmap']) ? $_REQUEST['flagProcessmap'] : 0); $this->setJSVar('ADD_TAB_UID', $addTabUid); $this->setJSVar('PRO_UID', isset($_GET['PRO_UID']) ? $_GET['PRO_UID'] : false); $this->setJSVar('TABLE', $table); $this->setJSVar('dbg', isset($httpData->dbg)); $this->setJSVar('columnsTypes', $columnsTypesList); $this->setJSVar('dataNumRows', $dataNumRows); $this->setJSVar('_plugin_permissions', $repTabPluginPermissions); $this->setJSVar('sizeTableName', $this->getSizeTableName()); $isBpmn = 0; if (isset($_GET['PRO_UID'])) { $process = new Process(); $isBpmn = $process->isBpmnProcess($_GET['PRO_UID']); } $this->setJSVar('isBpmn', $isBpmn); G::RenderPage('publish', 'extJs'); }
protected function get($id = '', $start = null, $limit = null, $type = null, $filter = null, $search = null, $process = null, $user = null, $status = null, $typeResource = null, $dateFrom = null, $dateTo = null) { if (empty($id)) { // getting all records. G::loadClass('applications'); $app = new Applications(); $userUid = Services_Rest_Auth::$userId; return $app->getAll($userUid, $start, $limit, $type, $filter, $search, $process, $status, $typeResource, $dateFrom, $dateTo); } else { // get a specific record. G::loadClass('wsBase'); $wsBase = new wsBase(); return $wsBase->getCaseInfo($id); } }
public function system() { global $RBAC; $RBAC->requirePermissions('PM_SETUP'); require_once PATH_CONTROLLERS . 'main.php'; G::loadClass('system'); $skinsList = System::getSkingList(); foreach ($skinsList['skins'] as $key => $value) { if ($value['SKIN_WORKSPACE'] != 'Global') { unset($skinsList['skins'][$key]); } } $skins = array(); $mainController = new Main(); $languagesList = $mainController->getLanguagesList(); $languagesList[] = array("", G::LoadTranslation("ID_USE_LANGUAGE_URL")); $sysConf = System::getSystemConfiguration(PATH_CONFIG . 'env.ini'); foreach ($skinsList['skins'] as $skin) { $skins[] = array($skin['SKIN_FOLDER_ID'], $skin['SKIN_NAME']); } $this->includeExtJS('admin/system'); //G::LoadClass('configuration'); // $c = new Configurations(); // $configPage = $c->getConfiguration('usersList', 'pageSize','',$_SESSION['USER_LOGGED']); // $Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20; if (isset($sysConf["session.gc_maxlifetime"])) { $sysConf["session_gc_maxlifetime"] = $sysConf["session.gc_maxlifetime"]; } else { $sysConf["session_gc_maxlifetime"] = ini_get('session.gc_maxlifetime'); } $this->setJSVar('skinsList', $skins); $this->setJSVar('languagesList', $languagesList); $this->setJSVar('timeZonesList', array_map(function ($value) { return [$value, $value]; }, DateTimeZone::listIdentifiers())); $this->setJSVar('sysConf', $sysConf); G::RenderPage('publish', 'extJs'); }
print G::json_encode($result); } break; case 'userData': require_once 'classes/model/Users.php'; $_SESSION['CURRENT_USER'] = $_POST['USR_UID']; $oUser = new Users(); $aFields = $oUser->loadDetailed($_POST['USR_UID']); //Load Calendar options and falue for this user G::LoadClass('calendar'); $calendar = new Calendar(); $calendarInfo = $calendar->getCalendarFor($_POST['USR_UID'], $_POST['USR_UID'], $_POST['USR_UID']); //If the function returns a DEFAULT calendar it means that this object doesn't have assigned any calendar $aFields['USR_CALENDAR'] = $calendarInfo['CALENDAR_APPLIED'] != 'DEFAULT' ? $calendarInfo['CALENDAR_UID'] : ""; #verifying if it has any preferences on the configurations table G::loadClass('configuration'); $oConf = new Configurations(); $oConf->loadConfig($x, 'USER_PREFERENCES', '', '', $_SESSION['USER_LOGGED'], ''); $aFields['PREF_DEFAULT_MENUSELECTED'] = ''; $aFields['PREF_DEFAULT_CASES_MENUSELECTED'] = ''; if (sizeof($oConf->Fields) > 0) { // this user has a configuration record $aFields['PREF_DEFAULT_LANG'] = $oConf->aConfig['DEFAULT_LANG']; $aFields['PREF_DEFAULT_MENUSELECTED'] = isset($oConf->aConfig['DEFAULT_MENU']) ? $oConf->aConfig['DEFAULT_MENU'] : ''; $aFields['PREF_DEFAULT_CASES_MENUSELECTED'] = isset($oConf->aConfig['DEFAULT_CASES_MENU']) ? $oConf->aConfig['DEFAULT_CASES_MENU'] : ''; } else { switch ($RBAC->aUserInfo['PROCESSMAKER']['ROLE']['ROL_CODE']) { case 'PROCESSMAKER_ADMIN': $aFields['PREF_DEFAULT_MENUSELECTED'] = 'PM_SETUP'; break; case 'PROCESSMAKER_OPERATOR':
public function saveOrderDashlet($data) { $this->setResponseType('json'); try { $orderDashlet[0] = Bootstrap::json_decode($data->positionCol0); $orderDashlet[1] = Bootstrap::json_decode($data->positionCol1); $orderDashlet[2] = Bootstrap::json_decode($data->positionCol2); G::loadClass('configuration'); $oConfiguration = new Configurations(); $aConfiguration = $oConfiguration->load('Dashboard', '', '', $_SESSION['USER_LOGGED']); $dataDashboard = array(); if (isset($aConfiguration["CFG_VALUE"])) { $dataDashboard = $aConfiguration["CFG_VALUE"]; } $dataNow['ORDER'] = $orderDashlet; if (isset($data->columns)) { $dataNow['COLUMNS'] = Bootstrap::json_decode($data->columns); } $dataDashboard = array_merge($dataDashboard, $dataNow); $oConfiguration->aConfig = $dataDashboard; $oConfiguration->saveConfig('Dashboard', '', '', $_SESSION['USER_LOGGED']); $result->success = '1'; return $result; } catch (Exception $error) { //ToDo: Display a error message } }
/** * Update the report table with a determinated case data * @param string $proUid * @param string $appUid * @param string $appNumber * @param string $caseData */ public function updateReportTables($proUid, $appUid, $appNumber, $caseData, $appStatus) { G::loadClass('pmTable'); //get all Active Report Tables $criteria = new Criteria('workflow'); $criteria->add(AdditionalTablesPeer::PRO_UID, $proUid); $dataset = AdditionalTablesPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); // accomplish all related report tables for this process that contain case data // for the target ($appUid) application while ($dataset->next()) { $row = $dataset->getRow(); $className = $row['ADD_TAB_CLASS_NAME']; // verify if the report table class exists if (!file_exists(PATH_WORKSPACE . 'classes/' . $className . '.php')) { continue; } // the class exists then load it. require_once PATH_WORKSPACE . 'classes/' . $className . '.php'; // create a criteria object of report table class $c = new Criteria(pmTable::resolveDbSource($row['DBS_UID'])); // select all related records with this $appUid eval('$c->add(' . $className . 'Peer::APP_UID, \'' . $appUid . '\');'); eval('$records = ' . $className . 'Peer::doSelect($c);'); //Select all types require_once 'classes/model/Fields.php'; $criteriaField = new Criteria('workflow'); $criteriaField->add(FieldsPeer::ADD_TAB_UID, $row['ADD_TAB_UID']); $datasetField = FieldsPeer::doSelectRS($criteriaField); $datasetField->setFetchmode(ResultSet::FETCHMODE_ASSOC); $fieldTypes = array(); while ($datasetField->next()) { $rowfield = $datasetField->getRow(); switch ($rowfield['FLD_TYPE']) { case 'FLOAT': case 'DOUBLE': case 'INTEGER': $fieldTypes[] = array($rowfield['FLD_NAME']=>$rowfield['FLD_TYPE']); break; default: break; } } switch ($row['ADD_TAB_TYPE']) { //switching by report table type case 'NORMAL': // parsing empty values to null if (!is_array($caseData)) { $caseData = unserialize($caseData); } foreach ($caseData as $i => $v) { foreach ($fieldTypes as $key => $fieldType) { foreach ($fieldType as $name => $type) { if ( strtoupper ( $i) == $name) { $v = validateType ($v, $type); unset($name); } } } $caseData[$i] = $v === '' ? null : $v; } if (is_array($records) && count($records) > 0) { // if the record already exists on the report table foreach ($records as $record) { //update all records if (method_exists($record, 'setAppStatus')) { $record->setAppStatus($appStatus); } $record->fromArray(array_change_key_case($caseData, CASE_UPPER), BasePeer::TYPE_FIELDNAME); if ($record->validate()) { $record->save(); } } } else { // there are not any record for this application on the table, then create it eval('$obj = new ' . $className . '();'); $obj->fromArray(array_change_key_case($caseData, CASE_UPPER), BasePeer::TYPE_FIELDNAME); $obj->setAppUid($appUid); $obj->setAppNumber($appNumber); if (method_exists($obj, 'setAppStatus')) { $obj->setAppStatus($appStatus); } $obj->save(); } break; case 'GRID': list($gridName, $gridUid) = explode('-', $row['ADD_TAB_GRID']); $gridData = isset($caseData[$gridName]) ? $caseData[$gridName] : array(); // delete old records if (is_array($records) && count($records) > 0) { foreach ($records as $record) { $record->delete(); } } // save all grid rows on grid type report table foreach ($gridData as $i => $gridRow) { eval('$obj = new ' . $className . '();'); //Parsing values foreach ($gridRow as $j => $v) { foreach ($fieldTypes as $key => $fieldType) { foreach ($fieldType as $name => $type) { if ( strtoupper ( $j) == $name) { $v = validateType ($v, $type); unset($name); } } } $gridRow[$j] = $v === '' ? null : $v; } $obj->fromArray(array_change_key_case($gridRow, CASE_UPPER), BasePeer::TYPE_FIELDNAME); $obj->setAppUid($appUid); $obj->setAppNumber($appNumber); if (method_exists($obj, 'setAppStatus')) { $obj->setAppStatus($appStatus); } $obj->setRow($i); $obj->save(); } break; } } }
/** * get user preferences for default redirect * verifying if it has any preferences on configurations table */ public function _getDefaultLocation() { global $RBAC; G::loadClass('configuration'); $oConf = new Configurations(); $oConf->loadConfig($x, 'USER_PREFERENCES', '', '', $_SESSION['USER_LOGGED'], ''); //$baseUrl = '/sys' . SYS_SYS . '/' . $this->lang . '/' . SYS_SKIN . '/'; if (isset($_COOKIE['workspaceSkin'])) { $baseUrl = '/sys' . SYS_SYS . '/' . $this->lang . '/' . $_COOKIE['workspaceSkin'] . '/'; } else { $baseUrl = '/sys' . SYS_SYS . '/' . $this->lang . '/' . SYS_SKIN . '/'; } $url = ''; if (sizeof($oConf->aConfig) > 0) { // this user has a configuration record // backward compatibility, because now, we don't have user and dashboard menu. if ($oConf->aConfig['DEFAULT_MENU'] == 'PM_USERS') { $oConf->aConfig['DEFAULT_MENU'] = 'PM_SETUP'; } switch ($oConf->aConfig['DEFAULT_MENU']) { case 'PM_SETUP': if ($RBAC->userCanAccess('PM_SETUP') == 1) { $url = 'setup/main'; } break; case 'PM_FACTORY': if ($RBAC->userCanAccess('PM_FACTORY') == 1) { $url = 'processes/main'; } break; case 'PM_CASES': if ($RBAC->userCanAccess('PM_CASES') == 1) { $url = 'cases/main'; } break; case 'PM_USERS': if ($RBAC->userCanAccess('PM_USERS') == 1) { $url = 'setup/main'; } break; case 'PM_DASHBOARD': if ($RBAC->userCanAccess('PM_DASHBOARD') == 1) { $url = 'dashboard/main'; } break; } } if (empty($url)) { if ($RBAC->userCanAccess('PM_FACTORY') == 1) { $url = 'processes/main'; } elseif ($RBAC->userCanAccess('PM_SETUP') == 1) { $url = 'setup/main'; } elseif ($RBAC->userCanAccess('PM_CASES') == 1) { $url = 'cases/main'; } elseif ($RBAC->userCanAccess('PM_USERS') == 1) { $url = 'setup/main'; } elseif ($RBAC->userCanAccess('PM_DASHBOARD') == 1) { $url = 'dashboard/dashboard'; } else { $url = 'users/myInfo'; } } return $baseUrl . $url; }
function getInfoFromPOFile($file) { G::loadClass('i18n_po'); $POFile = new i18n_PO($file); $POFile->readInit(); $POHeaders = $POFile->getHeaders(); if ($POHeaders['X-Poedit-Country'] != '.') { $country = self::getTranslationMetaByCountryName($POHeaders['X-Poedit-Country']); } else { $country = '.'; } $language = self::getTranslationMetaByLanguageName($POHeaders['X-Poedit-Language']); if ($language !== false) { if ($country !== false) { if ($country != '.') { $LOCALE = $language['LAN_ID'] . '-' . $country['IC_UID']; } else { if ($country == '.') { //this a trsnlation file with a language international, no country name was set $LOCALE = $language['LAN_ID']; } else { throw new Exception('PO File Error: "' . $file . '" has a invalid country definition!'); } } } else { throw new Exception('PO File Error: "' . $file . '" has a invalid country definition!'); } } else { throw new Exception('PO File Error: "' . $file . '" has a invalid language definition!'); } $countItems = 0; try { while ($rowTranslation = $POFile->getTranslation()) { $countItems++; } } catch (Exception $e) { $countItems = '-'; } return array('LOCALE' => $LOCALE, 'HEADERS' => $POHeaders, 'COUNT' => $countItems); }
function getEmailConfiguration() { G::loadClass('system'); return System::getEmailConfiguration(); }
/** * Login */ public function login() { require_once 'classes/model/LoginLog.php'; G::LoadClass('system'); G::loadClass('configuration'); $this->conf = new Configurations(); // getting posibles errors passed by GET method $this->getInUrlError(); if (!isset($_SESSION['G_MESSAGE'])) { $_SESSION['G_MESSAGE'] = ''; } if (!isset($_SESSION['G_MESSAGE_TYPE'])) { $_SESSION['G_MESSAGE_TYPE'] = ''; } $msg = $_SESSION['G_MESSAGE']; $msgType = $_SESSION['G_MESSAGE_TYPE']; if (!isset($_SESSION['FAILED_LOGINS'])) { $_SESSION['FAILED_LOGINS'] = 0; } $sFailedLogins = $_SESSION['FAILED_LOGINS']; if (isset($_SESSION['USER_LOGGED'])) { //close the session, if the current session_id was used in PM. $oCriteria = new Criteria('workflow'); $oCriteria->add(LoginLogPeer::LOG_SID, session_id()); $oCriteria->add(LoginLogPeer::USR_UID, isset($_SESSION['USER_LOGGED']) ? $_SESSION['USER_LOGGED'] : '-'); $oCriteria->add(LoginLogPeer::LOG_STATUS, 'ACTIVE'); $oCriteria->add(LoginLogPeer::LOG_END_DATE, null, Criteria::ISNULL); $oDataset = LoginLogPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $aRow = $oDataset->getRow(); if ($aRow) { if ($aRow['LOG_STATUS'] != 'CLOSED' && $aRow['LOG_END_DATE'] == null) { $weblog = new LoginLog(); $aLog['LOG_UID'] = $aRow['LOG_UID']; $aLog['LOG_STATUS'] = 'CLOSED'; $aLog['LOG_IP'] = $aRow['LOG_IP']; $aLog['LOG_SID'] = session_id(); $aLog['LOG_INIT_DATE'] = $aRow['LOG_INIT_DATE']; $aLog['LOG_END_DATE'] = date('Y-m-d H:i:s'); $aLog['LOG_CLIENT_HOSTNAME'] = $aRow['LOG_CLIENT_HOSTNAME']; $aLog['USR_UID'] = $aRow['USR_UID']; $weblog->update($aLog); } } //remove memcached session $this->memcache->delete('rbacSession' . session_id()); } else { // Execute SSO trigger $pluginRegistry =& PMPluginRegistry::getSingleton(); if (defined('PM_SINGLE_SIGN_ON')) { if ($pluginRegistry->existsTrigger(PM_SINGLE_SIGN_ON)) { if ($pluginRegistry->executeTriggers(PM_SINGLE_SIGN_ON, null)) { // Start new session @session_destroy(); session_start(); session_regenerate_id(); // Authenticate $result = $this->authentication(); if ($result->success) { // Redirect to landing page for the user G::header('Location: ' . $result->url); die; } } } } } //end log //start new session @session_destroy(); session_start(); session_regenerate_id(); if (strlen($msg) > 0) { $_SESSION['G_MESSAGE'] = $msg; } if (strlen($msgType) > 0) { $_SESSION['G_MESSAGE_TYPE'] = $msgType; } $_SESSION['FAILED_LOGINS'] = $sFailedLogins; $availableLangArray = $this->getLanguagesList(); G::LoadClass("serverConfiguration"); $sflag = 0; if (($nextBeatDate = $this->memcache->get('nextBeatDate')) === false) { //get the serverconf singleton, and check if we can send the heartbeat $oServerConf =& serverConf::getSingleton(); $sflag = $oServerConf->getHeartbeatProperty('HB_OPTION', 'HEART_BEAT_CONF'); $sflag = trim($sflag) != '' ? $sflag : '1'; //get date of next beat $nextBeatDate = $oServerConf->getHeartbeatProperty('HB_NEXT_BEAT_DATE', 'HEART_BEAT_CONF'); $this->memcache->set('nextBeatDate', $nextBeatDate, 1 * 3600); } else { $sflag = '1'; } if ($sflag == '1' && (strtotime("now") > $nextBeatDate || is_null($nextBeatDate))) { //To do: we need to change to ExtJs $this->setJSVar('flagHeartBeat', 1); } else { $this->setJSVar('flagHeartBeat', 0); } if (($flagGettingStarted = $this->memcache->get('flagGettingStarted')) === false) { require_once 'classes/model/Configuration.php'; $oConfiguration = new Configuration(); $oCriteria = new Criteria('workflow'); $oCriteria->add(ConfigurationPeer::CFG_UID, 'getStarted'); $oCriteria->add(ConfigurationPeer::OBJ_UID, ''); $oCriteria->add(ConfigurationPeer::CFG_VALUE, '1'); $oCriteria->add(ConfigurationPeer::PRO_UID, ''); $oCriteria->add(ConfigurationPeer::USR_UID, ''); $oCriteria->add(ConfigurationPeer::APP_UID, ''); $flagGettingStarted = ConfigurationPeer::doCount($oCriteria); $this->memcache->set('flagGettingStarted', $flagGettingStarted, 8 * 3600); } $this->setJSVar('flagGettingStarted', $flagGettingStarted == 0); G::loadClass('configuration'); $oConf = new Configurations(); $oConf->loadConfig($obj, 'ENVIRONMENT_SETTINGS', ''); $flagForgotPassword = isset($oConf->aConfig['login_enableForgotPassword']) ? $oConf->aConfig['login_enableForgotPassword'] : '******'; $this->includeExtJSLib('ux/virtualkeyboard'); $this->includeExtJS('main/login'); $this->setView('main/login'); $oConf->loadConfig($obj, 'ENVIRONMENT_SETTINGS', ''); $forgotPasswd = isset($oConf->aConfig['login_enableForgotPassword']) ? $oConf->aConfig['login_enableForgotPassword'] : false; $virtualKeyboad = isset($oConf->aConfig['login_enableVirtualKeyboard']) ? $oConf->aConfig['login_enableVirtualKeyboard'] : false; $defaultLanguaje = isset($oConf->aConfig['login_defaultLanguage']) ? $oConf->aConfig['login_defaultLanguage'] : 'en'; $this->setJSVar('forgotPasswd', $forgotPasswd); $this->setJSVar('virtualKeyboad', $virtualKeyboad); $this->setJSVar('languages', $availableLangArray); $this->setJSVar('defaultLang', $defaultLanguaje); //binding G::SendTemporalMessage() to Ext.msgBoxSlider.msgTopCenter() if (($flyNotify = $this->getFlyNotify()) !== false) { $this->setJSVar('flyNotify', $flyNotify); } //binding G::SendTemporalMessage() to Ext.msgBoxSlider.msgTopCenter() if (isset($_GET['u'])) { $this->setJSVar('urlRequested', urldecode($_GET['u'])); } $this->setVar('logo_company', $this->getCompanyLogo()); $this->setVar('pmos_version', System::getVersion()); $footerText = 'Copyright © 2003-' . date('Y') . ' Colosa, Inc. All rights reserved.'; $adviseText = 'Supplied free of charge with no support, certification, warranty, maintenance nor indemnity by Colosa and its Certified Partners. '; $this->setVar('footer_text', $footerText); $this->setVar('advise_text', $adviseText); $loginScript = $this->getHeadPublisher()->getExtJsLibraries(); $loginScript .= $this->getHeadPublisher()->getExtJsScripts(); $this->setVar('login_script', $loginScript); $this->setVar('login_vars', $this->getHeadPublisher()->getExtJsVariablesScript()); $this->setLayout('pm-modern-login'); $this->render(); }
public function editTaskProperties($sTaskUID = '', $iForm = 1, $iIndex = 0) { $sw_template = false; try { switch ($iForm) { case 1: $sFilename = 'tasks/tasks_Definition.xml'; break; case 2: $sFilename = 'tasks/tasks_AssignmentRules.xml'; break; case 3: $sFilename = 'tasks/tasks_TimingControl.xml'; break; case 4: $sFilename = 'tasks/tasks_Owner.xml'; break; case 5: $sFilename = 'tasks/tasks_Permissions.xml'; break; case 6: $sFilename = 'tasks/tasks_Labels.xml'; break; case 7: $sFilename = 'tasks/tasks_Notifications.xml'; break; case 8: $sFilename = 'tasks/tasks_Consolidated.xml'; break; default: //if the $iForm is not one of the defaults then search under Plugins for an extended property. By JHL Jan 18, 2011 $oPluginRegistry = & PMPluginRegistry::getSingleton(); $activePluginsForTaskProperties = $oPluginRegistry->getTaskExtendedProperties(); foreach ($activePluginsForTaskProperties as $key => $taskPropertiesInfo) { $id = $taskPropertiesInfo->sNamespace . "--" . $taskPropertiesInfo->sName; if ($id == $iForm) { $sFilename = $taskPropertiesInfo->sPage; $sw_template = true; } } //$sFilename = 'tasks/tasks_Owner.xml'; break; } $oTask = new Task(); $aFields = $oTask->load($sTaskUID); $aFields['INDEX'] = $iIndex; $aFields['IFORM'] = $iForm; $aFields['LANG'] = SYS_LANG; /** * Task Notifications * */ if ($iForm == 7 || $iForm == 1) { G::loadClass('processes'); $files = Processes::getProcessFiles($aFields['PRO_UID'], 'mail'); $templates = array(); $templates[] = 'dummy'; foreach ($files as $file) { $templates[] = array('FILE' => $file['filename'], 'NAME' => $file['filename'] ); } global $_DBArray; $_DBArray['_TEMPLATES1'] = $templates; $_SESSION['_DBArray'] = $_DBArray; if ($iForm == 7) { // Additional configuration G::loadClass('configuration'); $oConf = new Configurations(); $oConf->loadConfig($x, 'TAS_EXTRA_PROPERTIES', $aFields['TAS_UID'], '', ''); $conf = $oConf->aConfig; if (isset($conf['TAS_DEF_MESSAGE_TYPE']) && isset($conf['TAS_DEF_MESSAGE_TYPE'])) { $aFields['TAS_DEF_MESSAGE_TYPE'] = $conf['TAS_DEF_MESSAGE_TYPE']; $aFields['TAS_DEF_MESSAGE_TEMPLATE'] = $conf['TAS_DEF_MESSAGE_TEMPLATE']; } } } if ($iForm == 3) { //Load Calendar Information $calendar = new Calendar(); $calendarObj = $calendar->getCalendarList(true, true); global $_DBArray; $_DBArray['availableCalendars'] = $calendarObj['array']; $_SESSION['_DBArray'] = $_DBArray; $calendarInfo = $calendar->getCalendarFor($sTaskUID, $sTaskUID, $sTaskUID); //If the function returns a DEFAULT calendar it means that this object doesn't have assigned any calendar $aFields['TAS_CALENDAR'] = $calendarInfo['CALENDAR_APPLIED'] != 'DEFAULT' ? $calendarInfo['CALENDAR_UID'] : ""; } if ($iForm == 2) { switch ($aFields["TAS_ASSIGN_TYPE"]) { case "SELF_SERVICE": $aFields["TAS_ASSIGN_TYPE"] = (!empty($aFields["TAS_GROUP_VARIABLE"])) ? "SELF_SERVICE_EVALUATE" : $aFields["TAS_ASSIGN_TYPE"]; break; } } if ($iForm == 8) { $oCaseConsolidated = CaseConsolidatedCorePeer::retrieveByPK($_SESSION["cDhTajE2T2lxSkhqMzZUTXVacWYyNcKwV3A4eWYybDdyb1p3"]["TAS_UID"]); if ((is_object($oCaseConsolidated)) && get_class($oCaseConsolidated) == "CaseConsolidated") { require_once ("classes/model/ReportTable.php"); $aFields["CON_STATUS"] = $oCaseConsolidated->getConStatus(); $aFields["DYN_UID"] = $oCaseConsolidated->getDynUid(); $aFields["REP_TAB_UID"] = $oCaseConsolidated->getRepTabUid(); $oReportTables = new ReportTable(); $oReportTables = $oReportTables->load($aFields["REP_TAB_UID"]); if (count($oReportTables)>0) { if ($oReportTables['REP_TAB_STATUS'] == 'ACTIVE') { $aFields["TABLE_NAME"] = $oReportTables['REP_TAB_NAME']; $aFields["TITLE"] = $oReportTables['REP_TAB_TITLE']; } } } $aFields["PRO_UID"] = $_SESSION["PROCESS"]; $aFields["TAS_UID"] = $_SESSION["cDhTajE2T2lxSkhqMzZUTXVacWYyNcKwV3A4eWYybDdyb1p3"]["TAS_UID"]; $aFields["SYS_LANG"] = SYS_LANG; $aFields['INDEX'] = 0; $aFields["TABLE_NAME_DEFAULT"] = "__" . $aFields["TAS_UID"]; $oCriteria = new Criteria("workflow"); $del = DBAdapter::getStringDelimiter(); $oCriteria->setDistinct(); $oCriteria->addSelectColumn(DynaformPeer::DYN_UID); $oCriteria->addSelectColumn(ContentPeer::CON_VALUE); $aConditions = array(); $aConditions[] = array(DynaformPeer::DYN_UID, ContentPeer::CON_ID); $aConditions[] = array(ContentPeer::CON_CATEGORY, $del . "DYN_TITLE" . $del); $aConditions[] = array(ContentPeer::CON_LANG, $del . "en" . $del); $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $oCriteria->add(DynaformPeer::PRO_UID, $_SESSION["PROCESS"]); $oCriteria->add(DynaformPeer::DYN_TYPE, "grid"); $oCriteria->addAscendingOrderByColumn(ContentPeer::CON_VALUE); $numRows = DynaformPeer::doCount($oCriteria); if ($numRows == 0) { $aFields['TITLE_ALERT'] = G::LoadTranslation('ID_ALERT'); $aFields['SUBTITLE_MESSAGE'] = G::LoadTranslation('ID_CONSOLIDATED_DYNAFORM_REQUIRED'); $sFilename = 'tasks/tasks_Consolidated_Error.xml'; } } global $G_PUBLISH; G::LoadClass('xmlfield_InputPM'); $G_PUBLISH = new Publisher(); if ($sw_template) { $G_PUBLISH->AddContent('view', $sFilename); } else { $G_PUBLISH->AddContent('xmlform', 'xmlform', $sFilename, '', $aFields); } G::RenderPage('publish', 'raw'); return true; } catch (Exception $oError) { throw ($oError); } }
/** * * @param string $target - task name to execute * @param string $buildFile - build file path * @param array $options - array options to override the options on .ini file * @param bool $verbose - to show a verbose output */ public static function callPhing($target, $buildFile = '', $options = array(), $verbose = true) { G::loadClass('pmPhing'); $args = array(); foreach ($options as $key => $value) { $args[] = "-D{$key}={$value}"; } if ($buildFile) { $args[] = '-f'; $args[] = realpath($buildFile); } if (!$verbose) { $args[] = '-q'; } if (is_array($target)) { $args = array_merge($args, $target); } else { $args[] = $target; } if (DIRECTORY_SEPARATOR != '\\' && (function_exists('posix_isatty') && @posix_isatty(STDOUT))) { $args[] = '-logger'; $args[] = 'phing.listener.AnsiColorLogger'; } Phing::startup(); Phing::setProperty('phing.home', getenv('PHING_HOME')); $m = new pmPhing(); $m->execute($args); $m->runBuild(); }
public function generatedDocumentsSummary() { global $G_PUBLISH; G::loadClass('configuration'); $oHeadPublisher =& headPublisher::getSingleton(); $conf = new Configurations(); $oHeadPublisher->addExtJsScript('cases/casesGenerateDocumentPage', true); //adding a javascript file .js $oHeadPublisher->addContent('cases/casesGenerateDocumentPage'); //adding a html file .html. $oHeadPublisher->assign("FORMATS", $conf->getFormats()); $oHeadPublisher->assign('pageSize', $conf->getEnvSetting('casesListRowNumber')); G::RenderPage('publish', 'extJs'); }
/** * Upgrade the AppCacheView table to the latest system version. * * This recreates the table and populates with data. * * @param bool $checkOnly only check if the upgrade is needed if true * @param string $lang not currently used */ public function upgradeCacheView($fill = true) { $this->initPropel(true); $lang = "en"; require_once 'classes/model/AppCacheView.php'; //check the language, if no info in config about language, the default is 'en' G::loadClass('configuration'); $oConf = new Configurations(); $oConf->loadConfig($x, 'APP_CACHE_VIEW_ENGINE', '', '', '', ''); $appCacheViewEngine = $oConf->aConfig; //setup the appcacheview object, and the path for the sql files $appCache = new AppCacheView(); $appCache->setPathToAppCacheFiles(PATH_METHODS . 'setup' . PATH_SEP . 'setupSchemas' . PATH_SEP); $userGrants = $appCache->checkGrantsForUser(false); $currentUser = $userGrants['user']; $currentUserIsSuper = $userGrants['super']; //if user does not have the SUPER privilege we need to use the root user and grant the SUPER priv. to normal user. if (!$currentUserIsSuper) { $appCache->checkGrantsForUser(true); $appCache->setSuperForUser($currentUser); $currentUserIsSuper = true; } CLI::logging("-> Creating table\n"); //now check if table APPCACHEVIEW exists, and it have correct number of fields, etc. $res = $appCache->checkAppCacheView(); CLI::logging("-> Creating triggers\n"); //now check if we have the triggers installed $triggers = array(); $triggers[] = $appCache->triggerAppDelegationInsert($lang, $checkOnly); $triggers[] = $appCache->triggerAppDelegationUpdate($lang, $checkOnly); $triggers[] = $appCache->triggerApplicationUpdate($lang, $checkOnly); $triggers[] = $appCache->triggerApplicationDelete($lang, $checkOnly); $triggers[] = $appCache->triggerContentUpdate($lang, $checkOnly); if ($fill) { CLI::logging("-> Rebuild Cache View\n"); //build using the method in AppCacheView Class $res = $appCache->fillAppCacheView($lang); //set status in config table $confParams = array('LANG' => $lang, 'STATUS' => 'active'); } $oConf->aConfig = $confParams; $oConf->saveConfig('APP_CACHE_VIEW_ENGINE', '', '', ''); // removing casesList configuration records. TODO: removing these lines that resets all the configurations records $oCriteria = new Criteria(); $oCriteria->add(ConfigurationPeer::CFG_UID, "casesList"); $oCriteria->add(ConfigurationPeer::OBJ_UID, array("todo", "draft", "sent", "unassigned", "paused", "cancelled"), Criteria::NOT_IN); ConfigurationPeer::doDelete($oCriteria); // end of reset }
/** * Replacement Logo * @global type $_REQUEST * @global type $RBAC */ public function replacementLogo() { global $_REQUEST; $sfunction = $_REQUEST['nameFunction']; $_GET['NAMELOGO'] = $_REQUEST['NAMELOGO']; 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; } switch ($sfunction) { case 'replacementLogo': $snameLogo = urldecode($_GET['NAMELOGO']); $snameLogo = trim($snameLogo); $snameLogo = self::changeNamelogo($snameLogo); G::loadClass('configuration'); $oConf = new Configurations(); $aConf = array('WORKSPACE_LOGO_NAME' => SYS_SYS, 'DEFAULT_LOGO_NAME' => $snameLogo); $oConf->aConfig = $aConf; $oConf->saveConfig('USER_LOGO_REPLACEMENT', '', '', ''); G::SendTemporalMessage('ID_REPLACED_LOGO', 'tmp-info', 'labels'); break; case 'restoreLogo': $snameLogo = $_GET['NAMELOGO']; G::loadClass('configuration'); $oConf = new Configurations(); $aConf = array('WORKSPACE_LOGO_NAME' => '', 'DEFAULT_LOGO_NAME' => ''); $oConf->aConfig = $aConf; $oConf->saveConfig('USER_LOGO_REPLACEMENT', '', '', ''); G::SendTemporalMessage('ID_REPLACED_LOGO', 'tmp-info', 'labels'); break; } } catch (Exception $oException) { die($oException->getMessage()); } exit; }
/** * Obtain all user permits for Dynaforms, Input and output documents from some action [VIEW, BLOCK, etc...] * * function getAllObjectsFrom ($PRO_UID, $APP_UID, $TAS_UID, $USR_UID, $ACTION) * @author Erik Amaru Ortiz <*****@*****.**> * @access public * @param Process ID, Application ID, Task ID, User ID, Action, Delegation index * @return Array within all user permitions all objects' types */ public function getAllObjectsFrom($PRO_UID, $APP_UID, $TAS_UID = "", $USR_UID = "", $ACTION = "", $delIndex = 0) { $aCase = $this->loadCase($APP_UID); if ($delIndex != 0) { $appDelay = new AppDelay(); if ($appDelay->isPaused($APP_UID, $delIndex)) { $aCase["APP_STATUS"] = "PAUSED"; } } $USER_PERMISSIONS = Array(); $GROUP_PERMISSIONS = Array(); $RESULT = Array( "DYNAFORM" => Array(), "INPUT" => Array(), "OUTPUT" => Array(), "CASES_NOTES" => 0, "MSGS_HISTORY" => Array() /*----------------------------------********---------------------------------*/ ); //permissions per user $oCriteria = new Criteria('workflow'); $oCriteria->add( $oCriteria->getNewCriterion(ObjectPermissionPeer::USR_UID, $USR_UID)->addOr( $oCriteria->getNewCriterion(ObjectPermissionPeer::USR_UID, '')->addOr( $oCriteria->getNewCriterion(ObjectPermissionPeer::USR_UID, '0') ) ) ); $oCriteria->add(ObjectPermissionPeer::PRO_UID, $PRO_UID); $oCriteria->add(ObjectPermissionPeer::OP_ACTION, $ACTION); $oCriteria->add( $oCriteria->getNewCriterion(ObjectPermissionPeer::TAS_UID, $TAS_UID)->addOr( $oCriteria->getNewCriterion(ObjectPermissionPeer::TAS_UID, '')->addOr( $oCriteria->getNewCriterion(ObjectPermissionPeer::TAS_UID, '0') ) ) ); $rs = ObjectPermissionPeer::doSelectRS($oCriteria); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($rs->next()) { $row = $rs->getRow(); if ($row["OP_CASE_STATUS"] == "ALL" || $row["OP_CASE_STATUS"] == "" || $row["OP_CASE_STATUS"] == "0" || $row["OP_CASE_STATUS"] == $aCase["APP_STATUS"] ) { array_push($USER_PERMISSIONS, $row); } } //permissions per group G::loadClass('groups'); $gr = new Groups(); $records = $gr->getActiveGroupsForAnUser($USR_UID); foreach ($records as $group) { $oCriteria = new Criteria('workflow'); $oCriteria->add(ObjectPermissionPeer::USR_UID, $group); $oCriteria->add(ObjectPermissionPeer::PRO_UID, $PRO_UID); $oCriteria->add(ObjectPermissionPeer::OP_ACTION, $ACTION); $oCriteria->add( $oCriteria->getNewCriterion(ObjectPermissionPeer::TAS_UID, $TAS_UID)->addOr( $oCriteria->getNewCriterion(ObjectPermissionPeer::TAS_UID, '')->addOr( $oCriteria->getNewCriterion(ObjectPermissionPeer::TAS_UID, '0') ) ) ); $rs = ObjectPermissionPeer::doSelectRS($oCriteria); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($rs->next()) { $row = $rs->getRow(); if ($row["OP_CASE_STATUS"] == "ALL" || $row["OP_CASE_STATUS"] == "" || $row["OP_CASE_STATUS"] == "0" || $row["OP_CASE_STATUS"] == $aCase["APP_STATUS"] ) { array_push($GROUP_PERMISSIONS, $row); } } } $PERMISSIONS = array_merge($USER_PERMISSIONS, $GROUP_PERMISSIONS); foreach ($PERMISSIONS as $row) { $USER = $row['USR_UID']; $USER_RELATION = $row['OP_USER_RELATION']; $TASK_SOURCE = $row['OP_TASK_SOURCE']; $PARTICIPATE = $row['OP_PARTICIPATE']; $O_TYPE = $row['OP_OBJ_TYPE']; $O_UID = $row['OP_OBJ_UID']; $ACTION = $row['OP_ACTION']; $CASE_STATUS = $row['OP_CASE_STATUS']; // here!,. we should verify $PARTICIPATE $sw_participate = false; // must be false for default if (($row['OP_CASE_STATUS'] != 'COMPLETED') && ($row['OP_CASE_STATUS'] != '') && ($row['OP_CASE_STATUS'] != '0')) { if ($PARTICIPATE == 1) { $oCriteriax = new Criteria('workflow'); $oCriteriax->add(AppDelegationPeer::USR_UID, $USR_UID); $oCriteriax->add(AppDelegationPeer::APP_UID, $APP_UID); if (AppDelegationPeer::doCount($oCriteriax) == 0) { $sw_participate = true; } } } if (!$sw_participate) { switch ($O_TYPE) { case 'ANY': //for dynaforms $oCriteria = new Criteria('workflow'); $oCriteria->add(ApplicationPeer::APP_UID, $APP_UID); $oCriteria->addJoin(ApplicationPeer::PRO_UID, StepPeer::PRO_UID); $oCriteria->addJoin(StepPeer::STEP_UID_OBJ, DynaformPeer::DYN_UID); if ($aCase['APP_STATUS'] != 'COMPLETED') { if ($TASK_SOURCE != '' && $TASK_SOURCE != "0" && $TASK_SOURCE != 0) { $oCriteria->add(StepPeer::TAS_UID, $TASK_SOURCE); } } $oCriteria->add(StepPeer::STEP_TYPE_OBJ, 'DYNAFORM'); $oCriteria->addAscendingOrderByColumn(StepPeer::STEP_POSITION); $oCriteria->setDistinct(); $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if (!in_array($aRow['DYN_UID'], $RESULT['DYNAFORM'])) { array_push($RESULT['DYNAFORM'], $aRow['DYN_UID']); } $oDataset->next(); } //InputDocuments and OutputDocuments $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_UID); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_TYPE); $arrayCondition = array(); $arrayCondition[] = array(AppDelegationPeer::APP_UID, AppDocumentPeer::APP_UID, Criteria::EQUAL); $arrayCondition[] = array(AppDelegationPeer::DEL_INDEX, AppDocumentPeer::DEL_INDEX, Criteria::EQUAL); $oCriteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN); $oCriteria->add(AppDelegationPeer::APP_UID, $APP_UID); $oCriteria->add(AppDelegationPeer::PRO_UID, $PRO_UID); if ($aCase['APP_STATUS'] != 'COMPLETED') { if ($TASK_SOURCE != '' && $TASK_SOURCE != "0" && $TASK_SOURCE != 0) { $oCriteria->add(AppDelegationPeer::TAS_UID, $TASK_SOURCE); } } $oCriteria->add( $oCriteria->getNewCriterion(AppDocumentPeer::APP_DOC_TYPE, 'INPUT')-> addOr($oCriteria->getNewCriterion(AppDocumentPeer::APP_DOC_TYPE, 'OUTPUT'))-> addOr($oCriteria-> getNewCriterion(AppDocumentPeer::APP_DOC_TYPE, 'ATTACHED')) ); $oDataset = AppDelegationPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($oDataset->next()) { $aRow = $oDataset->getRow(); if ($aRow['APP_DOC_TYPE'] == "ATTACHED") { $aRow['APP_DOC_TYPE'] = "INPUT"; } if (!in_array($aRow['APP_DOC_UID'], $RESULT[$aRow['APP_DOC_TYPE']])) { array_push($RESULT[$aRow['APP_DOC_TYPE']], $aRow['APP_DOC_UID']); } } $RESULT['CASES_NOTES'] = 1; /*----------------------------------********---------------------------------*/ // Message History $RESULT['MSGS_HISTORY'] = array('PERMISSION' => $ACTION); $arrayDelIndex = array(); $oCriteria = new Criteria('workflow'); if ($USER_RELATION == 1) { //Users $oCriteria->add(AppDelegationPeer::APP_UID, $APP_UID); $oCriteria->add(AppDelegationPeer::PRO_UID, $PRO_UID); if ($aCase['APP_STATUS'] != 'COMPLETED') { if ($TASK_SOURCE != '' && $TASK_SOURCE != "0" && $TASK_SOURCE != 0) { $oCriteria->add(AppDelegationPeer::TAS_UID, $TASK_SOURCE); } } $oCriteria->add(AppDelegationPeer::USR_UID, $USER); $oDataset = AppDelegationPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $arrayDelIndex[] = $aRow["DEL_INDEX"]; $oDataset->next(); } } else { //Groups $oCriteria->addJoin(GroupUserPeer::USR_UID, AppDelegationPeer::USR_UID, Criteria::LEFT_JOIN); $oCriteria->add(GroupUserPeer::GRP_UID, $USER); $oCriteria->add(AppDelegationPeer::APP_UID, $APP_UID); $oCriteria->add(AppDelegationPeer::PRO_UID, $PRO_UID); if ($aCase['APP_STATUS'] != 'COMPLETED') { if ($TASK_SOURCE != '' && $TASK_SOURCE != "0" && $TASK_SOURCE != 0) { $oCriteria->add(AppDelegationPeer::TAS_UID, $TASK_SOURCE); } } $oDataset = AppDelegationPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $arrayDelIndex[] = $aRow["DEL_INDEX"]; $oDataset->next(); } } $RESULT["MSGS_HISTORY"] = array_merge(array("DEL_INDEX" => $arrayDelIndex), $RESULT["MSGS_HISTORY"]); break; case 'DYNAFORM': $oCriteria = new Criteria('workflow'); $oCriteria->add(ApplicationPeer::APP_UID, $APP_UID); if ($aCase['APP_STATUS'] != 'COMPLETED') { if ($TASK_SOURCE != '' && $TASK_SOURCE != "0") { $oCriteria->add(StepPeer::TAS_UID, $TASK_SOURCE); } } if ($O_UID != '' && $O_UID != '0') { $oCriteria->add(DynaformPeer::DYN_UID, $O_UID); } $oCriteria->addJoin(ApplicationPeer::PRO_UID, StepPeer::PRO_UID); $oCriteria->addJoin(StepPeer::STEP_UID_OBJ, DynaformPeer::DYN_UID); $oCriteria->add(StepPeer::STEP_TYPE_OBJ, 'DYNAFORM'); $oCriteria->addAscendingOrderByColumn(StepPeer::STEP_POSITION); $oCriteria->setDistinct(); $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if (!in_array($aRow['DYN_UID'], $RESULT['DYNAFORM'])) { array_push($RESULT['DYNAFORM'], $aRow['DYN_UID']); } $oDataset->next(); } break; case 'INPUT': case 'OUTPUT': if ($row['OP_OBJ_TYPE'] == 'INPUT') { $obj_type = 'INPUT'; } else { $obj_type = 'OUTPUT'; } $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_UID); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_TYPE); $oCriteria->add(AppDelegationPeer::APP_UID, $APP_UID); $oCriteria->add(AppDelegationPeer::PRO_UID, $PRO_UID); if ($aCase['APP_STATUS'] != 'COMPLETED') { if ($TASK_SOURCE != '' && $TASK_SOURCE != "0" && $TASK_SOURCE != 0) { $oCriteria->add(AppDelegationPeer::TAS_UID, $TASK_SOURCE); } } if ($O_UID != '' && $O_UID != '0') { $oCriteria->add(AppDocumentPeer::DOC_UID, $O_UID); } if ($obj_type == 'INPUT') { $oCriteria->add( $oCriteria->getNewCriterion(AppDocumentPeer::APP_DOC_TYPE, $obj_type)-> addOr($oCriteria->getNewCriterion(AppDocumentPeer::APP_DOC_TYPE, 'ATTACHED')) ); } else { $oCriteria->add(AppDocumentPeer::APP_DOC_TYPE, $obj_type); } $aConditions = Array(); $aConditions[] = array(AppDelegationPeer::APP_UID, AppDocumentPeer::APP_UID); $aConditions[] = array(AppDelegationPeer::DEL_INDEX, AppDocumentPeer::DEL_INDEX); $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $oDataset = AppDocumentPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if (!in_array($aRow['APP_DOC_UID'], $RESULT[$obj_type])) { array_push($RESULT[$obj_type], $aRow['APP_DOC_UID']); } $oDataset->next(); } if ($obj_type == 'INPUT') { // For supervisor documents $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_UID); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_TYPE); $oCriteria->add(ApplicationPeer::APP_UID, $APP_UID); $oCriteria->add(ApplicationPeer::PRO_UID, $PRO_UID); if ($O_UID != '' && $O_UID != '0') { $oCriteria->add(AppDocumentPeer::DOC_UID, $O_UID); } $oCriteria->add(AppDocumentPeer::APP_DOC_TYPE, 'INPUT'); $oCriteria->add(AppDocumentPeer::DEL_INDEX, 100000); $oCriteria->addJoin(ApplicationPeer::APP_UID, AppDocumentPeer::APP_UID, Criteria::LEFT_JOIN); $oDataset = AppDocumentPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if (!in_array($aRow['APP_DOC_UID'], $RESULT['INPUT'])) { array_push($RESULT['INPUT'], $aRow['APP_DOC_UID']); } $oDataset->next(); } } break; case 'CASES_NOTES': $RESULT['CASES_NOTES'] = 1; break; /*----------------------------------********---------------------------------*/ case 'MSGS_HISTORY': // Permission $RESULT['MSGS_HISTORY'] = array('PERMISSION' => $ACTION); $arrayDelIndex = array(); $oCriteria = new Criteria('workflow'); if ($USER_RELATION == 1) { $oCriteria->add(AppDelegationPeer::APP_UID, $APP_UID); $oCriteria->add(AppDelegationPeer::PRO_UID, $PRO_UID); if ($aCase['APP_STATUS'] != 'COMPLETED') { if ($TASK_SOURCE != '' && $TASK_SOURCE != "0" && $TASK_SOURCE != 0) { $oCriteria->add(AppDelegationPeer::TAS_UID, $TASK_SOURCE); } } $oCriteria->add(AppDelegationPeer::USR_UID, $USER); $oDataset = AppDelegationPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $arrayDelIndex[] = $aRow["DEL_INDEX"]; $oDataset->next(); } } else { //Groups $oCriteria->addJoin(GroupUserPeer::USR_UID, AppDelegationPeer::USR_UID, Criteria::LEFT_JOIN); $oCriteria->add(GroupUserPeer::GRP_UID, $USER); $oCriteria->add(AppDelegationPeer::APP_UID, $APP_UID); $oCriteria->add(AppDelegationPeer::PRO_UID, $PRO_UID); if ($aCase['APP_STATUS'] != 'COMPLETED') { if ($TASK_SOURCE != '' && $TASK_SOURCE != "0" && $TASK_SOURCE != 0) { $oCriteria->add(AppDelegationPeer::TAS_UID, $TASK_SOURCE); } } $oDataset = AppDelegationPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $arrayDelIndex[] = $aRow["DEL_INDEX"]; $oDataset->next(); } } $RESULT["MSGS_HISTORY"] = array_merge(array("DEL_INDEX" => $arrayDelIndex), $RESULT["MSGS_HISTORY"]); break; } } } return Array( "DYNAFORMS" => $RESULT['DYNAFORM'], "INPUT_DOCUMENTS" => $RESULT['INPUT'], "OUTPUT_DOCUMENTS" => $RESULT['OUTPUT'], "CASES_NOTES" => $RESULT['CASES_NOTES'], "MSGS_HISTORY" => $RESULT['MSGS_HISTORY'] /*----------------------------------********---------------------------------*/ ); }
case 'editProfile': G::header('Location: ../fieldcontrol/my_profile'); die; break; case 'editPassword': G::header('Location: ../fieldcontrol/my_profile.php?type=onlyPassword'); die; break; case 'start': // Validating request data if (!isset($_REQUEST['task'])) { throw new Exception('The required parameter "task" is empty.'); } // Start a case # Get the last draft case G::loadClass('pmFunctions'); G::LoadClass('case'); $caseInstance = new Cases(); $sqlGetProcess = 'SELECT PRO_UID FROM TASK WHERE TAS_UID="' . $_REQUEST['task'] . '"'; $resultGetProcess = executeQuery($sqlGetProcess); $sqlDraft = "SELECT MAX(APP_NUMBER), APP_UID FROM APPLICATION\n WHERE APP_STATUS = 'DRAFT' AND PRO_UID='" . $resultGetProcess[1]['PRO_UID'] . "' AND APP_CUR_USER= '******'USER_LOGGED'] . "' GROUP BY APP_NUMBER "; $resultDraft = executeQuery($sqlDraft); if (sizeof($resultDraft)) { $sqlprocessTask = "SELECT * FROM APP_DELEGATION WHERE APP_UID= '" . $resultDraft[1]['APP_UID'] . "' AND DEL_INDEX= 1 "; $resultprocessTask = executeQuery($sqlprocessTask); if (sizeof($resultprocessTask)) { $_SESSION['APPLICATION'] = $resultDraft[1]['APP_UID']; $_SESSION['INDEX'] = 1; $_SESSION['PROCESS'] = $resultprocessTask[1]['PRO_UID']; $_SESSION['TASK'] = $resultprocessTask[1]['TAS_UID']; $_SESSION['STEP_POSITION'] = 0;
public function replaceRowUserData($rowData) { try { G::loadClass('configuration'); $oConfig = new Configuration(); $aConfig = $oConfig->load('ENVIRONMENT_SETTINGS'); $aConfig = unserialize($aConfig['CFG_VALUE']); } catch (Exception $e) { // if there is no configuration record then. $aConfig['format'] = '@userName'; } if (isset($rowData['USR_UID']) && isset($rowData['APP_CURRENT_USER'])) { $rowData['APP_CURRENT_USER'] = $this->getFormatedUser($aConfig['format'], $rowData, 'USR_UID'); } if (isset($rowData['PREVIOUS_USR_UID']) && isset($rowData['APP_DEL_PREVIOUS_USER'])) { $rowData['APP_DEL_PREVIOUS_USER'] = $this->getFormatedUser($aConfig['format'], $rowData, 'PREVIOUS_USR_UID'); } return $rowData; }
<?php G::loadClass('wsBase'); G::LoadClass('sessions'); class Services_Rest_Login { public function post($user, $password) { $wsBase = new wsBase(); $result = $wsBase->login($user, $password); if ($result->status_code == 0) { return array('auth_key' => $result->message); } else { throw new RestException(401, $result->message); } } }
/** * Get Process details * * @param object $httpData{PRO_UID} * @return array */ public function getProcessDetail($httpData) { require_once 'classes/model/Process.php'; G::loadClass('tasks'); $tasks = new Tasks(); $PRO_UID = $httpData->PRO_UID; $process = ProcessPeer::retrieveByPk($PRO_UID); $tasksList = $tasks->getAllTasks($PRO_UID); $rootNode->id = $process->getProUid(); $rootNode->type = 'process'; $rootNode->typeLabel = G::LoadTranslation('ID_PROCESS'); $rootNode->text = $process->getProTitle(); $rootNode->leaf = count($tasksList) > 0 ? false : true; $rootNode->iconCls = 'ss_sprite ss_application'; $rootNode->expanded = true; foreach ($tasksList as $task) { $node = new stdClass(); $node->id = $task['TAS_UID']; $node->type = 'task'; $node->typeLabel = G::LoadTranslation('ID_TASK'); $node->text = $task['TAS_TITLE']; $node->iconCls = 'ss_sprite ss_layout'; $node->leaf = true; $rootNode->children[] = $node; } $treeDetail[] = $rootNode; return $treeDetail; }
/** * Obtain all user permits for Dynaforms, Input and output documents from some action [VIEW, BLOCK, etc...] * * function getAllObjectsFrom ($PRO_UID, $APP_UID, $TAS_UID, $USR_UID, $ACTION) * @author Erik Amaru Ortiz <*****@*****.**> * @access public * @param Process ID, Application ID, Task ID, User ID, Action * @return Array within all user permitions all objects' types */ public function getAllObjectsFrom($PRO_UID, $APP_UID, $TAS_UID = '', $USR_UID = '', $ACTION = '') { $aCase = $this->loadCase($APP_UID); $USER_PERMISSIONS = array(); $GROUP_PERMISSIONS = array(); $RESULT = array("DYNAFORM" => array(), "INPUT" => array(), "OUTPUT" => array(), "CASES_NOTES" => 0); //permissions per user $oCriteria = new Criteria('workflow'); $oCriteria->add($oCriteria->getNewCriterion(ObjectPermissionPeer::USR_UID, $USR_UID)->addOr($oCriteria->getNewCriterion(ObjectPermissionPeer::USR_UID, '')->addOr($oCriteria->getNewCriterion(ObjectPermissionPeer::USR_UID, '0')))); $oCriteria->add(ObjectPermissionPeer::PRO_UID, $PRO_UID); $oCriteria->add(ObjectPermissionPeer::OP_ACTION, $ACTION); $oCriteria->add($oCriteria->getNewCriterion(ObjectPermissionPeer::TAS_UID, $TAS_UID)->addOr($oCriteria->getNewCriterion(ObjectPermissionPeer::TAS_UID, '')->addOr($oCriteria->getNewCriterion(ObjectPermissionPeer::TAS_UID, '0')))); $oCriteria->add($oCriteria->getNewCriterion(ObjectPermissionPeer::OP_CASE_STATUS, 'ALL')->addOr($oCriteria->getNewCriterion(ObjectPermissionPeer::OP_CASE_STATUS, '')->addOr($oCriteria->getNewCriterion(ObjectPermissionPeer::OP_CASE_STATUS, '0')))); $rs = ObjectPermissionPeer::doSelectRS($oCriteria); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rs->next(); while ($row = $rs->getRow()) { if ($aCase['APP_STATUS'] == $row['OP_CASE_STATUS'] || $row['OP_CASE_STATUS'] == '' || $row['OP_CASE_STATUS'] == 'ALL' || $row['OP_CASE_STATUS'] == '') { array_push($USER_PERMISSIONS, $row); } $rs->next(); } //permissions per group G::loadClass('groups'); $gr = new Groups(); $records = $gr->getActiveGroupsForAnUser($USR_UID); foreach ($records as $group) { $oCriteria = new Criteria('workflow'); $oCriteria->add(ObjectPermissionPeer::USR_UID, $group); $oCriteria->add(ObjectPermissionPeer::PRO_UID, $PRO_UID); $oCriteria->add(ObjectPermissionPeer::OP_ACTION, $ACTION); $oCriteria->add($oCriteria->getNewCriterion(ObjectPermissionPeer::TAS_UID, $TAS_UID)->addOr($oCriteria->getNewCriterion(ObjectPermissionPeer::TAS_UID, '')->addOr($oCriteria->getNewCriterion(ObjectPermissionPeer::TAS_UID, '0')))); $oCriteria->add($oCriteria->getNewCriterion(ObjectPermissionPeer::OP_CASE_STATUS, 'ALL')->addOr($oCriteria->getNewCriterion(ObjectPermissionPeer::OP_CASE_STATUS, '')->addOr($oCriteria->getNewCriterion(ObjectPermissionPeer::OP_CASE_STATUS, '0')))); $rs = ObjectPermissionPeer::doSelectRS($oCriteria); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($rs->next()) { array_push($GROUP_PERMISSIONS, $rs->getRow()); } } $PERMISSIONS = array_merge($USER_PERMISSIONS, $GROUP_PERMISSIONS); foreach ($PERMISSIONS as $row) { $USER = $row['USR_UID']; $USER_RELATION = $row['OP_USER_RELATION']; $TASK_SOURCE = $row['OP_TASK_SOURCE']; $PARTICIPATE = $row['OP_PARTICIPATE']; $O_TYPE = $row['OP_OBJ_TYPE']; $O_UID = $row['OP_OBJ_UID']; $ACTION = $row['OP_ACTION']; $CASE_STATUS = $row['OP_CASE_STATUS']; // here!,. we should verify $PARTICIPATE $sw_participate = false; // must be false for default if ($row['OP_CASE_STATUS'] != 'COMPLETED' && $row['OP_CASE_STATUS'] != '' && $row['OP_CASE_STATUS'] != '0') { if ($PARTICIPATE == 1) { $oCriteriax = new Criteria('workflow'); $oCriteriax->add(AppDelegationPeer::USR_UID, $USR_UID); $oCriteriax->add(AppDelegationPeer::APP_UID, $APP_UID); if (AppDelegationPeer::doCount($oCriteriax) == 0) { $sw_participate = true; } } } if (!$sw_participate) { switch ($O_TYPE) { case 'ANY': //for dynaforms $oCriteria = new Criteria('workflow'); $oCriteria->add(ApplicationPeer::APP_UID, $APP_UID); $oCriteria->addJoin(ApplicationPeer::PRO_UID, StepPeer::PRO_UID); $oCriteria->addJoin(StepPeer::STEP_UID_OBJ, DynaformPeer::DYN_UID); if ($aCase['APP_STATUS'] != 'COMPLETED') { if ($TASK_SOURCE != '' && $TASK_SOURCE != "0" && $TASK_SOURCE != 0) { $oCriteria->add(StepPeer::TAS_UID, $TASK_SOURCE); } } $oCriteria->add(StepPeer::STEP_TYPE_OBJ, 'DYNAFORM'); $oCriteria->addAscendingOrderByColumn(StepPeer::STEP_POSITION); $oCriteria->setDistinct(); $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if (!in_array($aRow['DYN_UID'], $RESULT['DYNAFORM'])) { array_push($RESULT['DYNAFORM'], $aRow['DYN_UID']); } $oDataset->next(); } //inputs $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_UID); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_TYPE); $oCriteria->add(AppDelegationPeer::APP_UID, $APP_UID); $oCriteria->add(AppDelegationPeer::PRO_UID, $PRO_UID); if ($aCase['APP_STATUS'] != 'COMPLETED') { if ($TASK_SOURCE != '' && $TASK_SOURCE != "0" && $TASK_SOURCE != 0) { $oCriteria->add(AppDelegationPeer::TAS_UID, $TASK_SOURCE); } } $oCriteria->add($oCriteria->getNewCriterion(AppDocumentPeer::APP_DOC_TYPE, 'INPUT')->addOr($oCriteria->getNewCriterion(AppDocumentPeer::APP_DOC_TYPE, 'OUTPUT'))->addOr($oCriteria->getNewCriterion(AppDocumentPeer::APP_DOC_TYPE, 'ATTACHED'))); $aConditions = array(); $aConditions[] = array(AppDelegationPeer::APP_UID, AppDocumentPeer::APP_UID); $aConditions[] = array(AppDelegationPeer::DEL_INDEX, AppDocumentPeer::DEL_INDEX); $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($aRow['APP_DOC_TYPE'] == "ATTACHED") { $aRow['APP_DOC_TYPE'] = "INPUT"; } if (!in_array($aRow['APP_DOC_UID'], $RESULT[$aRow['APP_DOC_TYPE']])) { array_push($RESULT[$aRow['APP_DOC_TYPE']], $aRow['APP_DOC_UID']); } $oDataset->next(); } $RESULT['CASES_NOTES'] = 1; break; case 'DYNAFORM': $oCriteria = new Criteria('workflow'); $oCriteria->add(ApplicationPeer::APP_UID, $APP_UID); if ($aCase['APP_STATUS'] != 'COMPLETED') { if ($TASK_SOURCE != '' && $TASK_SOURCE != "0") { $oCriteria->add(StepPeer::TAS_UID, $TASK_SOURCE); } } if ($O_UID != '' && $O_UID != '0') { $oCriteria->add(DynaformPeer::DYN_UID, $O_UID); } $oCriteria->addJoin(ApplicationPeer::PRO_UID, StepPeer::PRO_UID); $oCriteria->addJoin(StepPeer::STEP_UID_OBJ, DynaformPeer::DYN_UID); $oCriteria->add(StepPeer::STEP_TYPE_OBJ, 'DYNAFORM'); $oCriteria->addAscendingOrderByColumn(StepPeer::STEP_POSITION); $oCriteria->setDistinct(); $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if (!in_array($aRow['DYN_UID'], $RESULT['DYNAFORM'])) { array_push($RESULT['DYNAFORM'], $aRow['DYN_UID']); } $oDataset->next(); } break; case 'INPUT': case 'OUTPUT': if ($row['OP_OBJ_TYPE'] == 'INPUT') { $obj_type = 'INPUT'; } else { $obj_type = 'OUTPUT'; } $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_UID); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_TYPE); $oCriteria->add(AppDelegationPeer::APP_UID, $APP_UID); $oCriteria->add(AppDelegationPeer::PRO_UID, $PRO_UID); if ($aCase['APP_STATUS'] != 'COMPLETED') { if ($TASK_SOURCE != '' && $TASK_SOURCE != "0" && $TASK_SOURCE != 0) { $oCriteria->add(AppDelegationPeer::TAS_UID, $TASK_SOURCE); } } if ($O_UID != '' && $O_UID != '0') { $oCriteria->add(AppDocumentPeer::DOC_UID, $O_UID); } if ($obj_type == 'INPUT') { $oCriteria->add($oCriteria->getNewCriterion(AppDocumentPeer::APP_DOC_TYPE, $obj_type)->addOr($oCriteria->getNewCriterion(AppDocumentPeer::APP_DOC_TYPE, 'ATTACHED'))); } else { $oCriteria->add(AppDocumentPeer::APP_DOC_TYPE, $obj_type); } $aConditions = array(); $aConditions[] = array(AppDelegationPeer::APP_UID, AppDocumentPeer::APP_UID); $aConditions[] = array(AppDelegationPeer::DEL_INDEX, AppDocumentPeer::DEL_INDEX); $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if (!in_array($aRow['APP_DOC_UID'], $RESULT[$obj_type])) { array_push($RESULT[$obj_type], $aRow['APP_DOC_UID']); } $oDataset->next(); } break; case 'CASES_NOTES': $RESULT['CASES_NOTES'] = 1; break; } } } return array("DYNAFORMS" => $RESULT['DYNAFORM'], "INPUT_DOCUMENTS" => $RESULT['INPUT'], "OUTPUT_DOCUMENTS" => $RESULT['OUTPUT'], "CASES_NOTES" => $RESULT['CASES_NOTES']); }
public function getAllProcesses($start, $limit, $category = null, $processName = null, $counters = true, $reviewSubProcess = false, $userLogged = "") { require_once PATH_RBAC . "model/RbacUsers.php"; require_once "classes/model/ProcessCategory.php"; require_once "classes/model/Users.php"; $user = new RbacUsers(); $aProcesses = array(); $categories = array(); $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(ProcessPeer::PRO_UID); $oCriteria->addSelectColumn(ProcessPeer::PRO_PARENT); $oCriteria->addSelectColumn(ProcessPeer::PRO_STATUS); $oCriteria->addSelectColumn(ProcessPeer::PRO_TYPE); $oCriteria->addSelectColumn(ProcessPeer::PRO_CATEGORY); $oCriteria->addSelectColumn(ProcessPeer::PRO_UPDATE_DATE); $oCriteria->addSelectColumn(ProcessPeer::PRO_CREATE_DATE); $oCriteria->addSelectColumn(ProcessPeer::PRO_CREATE_USER); $oCriteria->addSelectColumn(ProcessPeer::PRO_DEBUG); $oCriteria->addSelectColumn(ProcessPeer::PRO_TYPE_PROCESS); $oCriteria->addSelectColumn(UsersPeer::USR_UID); $oCriteria->addSelectColumn(UsersPeer::USR_USERNAME); $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME); $oCriteria->addSelectColumn(ProcessCategoryPeer::CATEGORY_UID); $oCriteria->addSelectColumn(ProcessCategoryPeer::CATEGORY_NAME); $oCriteria->add(ProcessPeer::PRO_UID, '', Criteria::NOT_EQUAL); $oCriteria->add(ProcessPeer::PRO_STATUS, 'DISABLED', Criteria::NOT_EQUAL); if ($reviewSubProcess) { $oCriteria->add(ProcessPeer::PRO_SUBPROCESS, '1', Criteria::NOT_EQUAL); } if (isset($category)) { $oCriteria->add(ProcessPeer::PRO_CATEGORY, $category, Criteria::EQUAL); } $oCriteria->addJoin(ProcessPeer::PRO_CREATE_USER, UsersPeer::USR_UID, Criteria::LEFT_JOIN); $oCriteria->addJoin(ProcessPeer::PRO_CATEGORY, ProcessCategoryPeer::CATEGORY_UID, Criteria::LEFT_JOIN); if ($this->sort == "PRO_CREATE_DATE") { if ($this->dir == "DESC") { $oCriteria->addDescendingOrderByColumn(ProcessPeer::PRO_CREATE_DATE); } else { $oCriteria->addAscendingOrderByColumn(ProcessPeer::PRO_CREATE_DATE); } } if ($userLogged != "") { $oCriteria->add($oCriteria->getNewCriterion(ProcessPeer::PRO_TYPE_PROCESS, "PUBLIC", Criteria::EQUAL)->addOr($oCriteria->getNewCriterion(ProcessPeer::PRO_CREATE_USER, $userLogged, Criteria::EQUAL))); } $this->tmpCriteria = clone $oCriteria; //execute a query to obtain numbers, how many cases there are by process if ($counters) { $casesCnt = $this->getCasesCountInAllProcesses(); } // getting bpmn projects $c = new Criteria('workflow'); $c->addSelectColumn(BpmnProjectPeer::PRJ_UID); $ds = ProcessPeer::doSelectRS($c, Propel::getDbConnection('workflow_ro')); $ds->setFetchmode(ResultSet::FETCHMODE_ASSOC); $bpmnProjects = array(); while ($ds->next()) { $row = $ds->getRow(); $bpmnProjects[] = $row['PRJ_UID']; } //execute the query $oDataset = ProcessPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $processes = array(); $uids = array(); while ($oDataset->next()) { $row = $oDataset->getRow(); $row["PROJECT_TYPE"] = $row["PRO_TYPE"] == "NORMAL" ? in_array($row["PRO_UID"], $bpmnProjects) ? "bpmn" : "classic" : $row["PRO_TYPE"]; $processes[] = $row; $uids[] = $processes[sizeof($processes) - 1]['PRO_UID']; } //process details will have the info about the processes $processesDetails = array(); //now get the labels for all process, using an array of Uids, $c = new Criteria('workflow'); //$c->add ( ContentPeer::CON_CATEGORY, 'PRO_TITLE', Criteria::EQUAL ); $c->add(ContentPeer::CON_LANG, defined('SYS_LANG') ? SYS_LANG : 'en', Criteria::EQUAL); $c->add(ContentPeer::CON_ID, $uids, Criteria::IN); $dt = ContentPeer::doSelectRS($c, Propel::getDbConnection('workflow_ro')); $dt->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($dt->next()) { $row = $dt->getRow(); $processesDetails[$row['CON_ID']][$row['CON_CATEGORY']] = $row['CON_VALUE']; } G::loadClass('configuration'); $oConf = new Configurations(); $oConf->loadConfig($obj, 'ENVIRONMENT_SETTINGS', ''); foreach ($processes as $process) { $proTitle = isset($processesDetails[$process['PRO_UID']]) && isset($processesDetails[$process['PRO_UID']]['PRO_TITLE']) ? $processesDetails[$process['PRO_UID']]['PRO_TITLE'] : ''; $proDescription = isset($processesDetails[$process['PRO_UID']]) && isset($processesDetails[$process['PRO_UID']]['PRO_DESCRIPTION']) ? $processesDetails[$process['PRO_UID']]['PRO_DESCRIPTION'] : ''; $process["PRO_TYPE_PROCESS"] = $process["PRO_TYPE_PROCESS"] == "PUBLIC" ? G::LoadTranslation("ID_PUBLIC") : G::LoadTranslation("ID_PRIVATE"); // verify if the title is already set on the current language if (trim($proTitle) == '') { // if not, then load the record to generate content for current language $proData = $this->load($process['PRO_UID']); $proTitle = $proData['PRO_TITLE']; $proDescription = $proData['PRO_DESCRIPTION']; } //filtering by $processName if (isset($processName) && $processName != '' && stripos($proTitle, $processName) === false) { continue; } if ($counters) { $casesCountTotal = 0; if (isset($casesCnt[$process['PRO_UID']])) { foreach ($casesCnt[$process['PRO_UID']] as $item) { $casesCountTotal += $item; } } } //get user format from configuration $userOwner = isset($oConf->aConfig['format']) ? $oConf->aConfig['format'] : ''; $creationDateMask = isset($oConf->aConfig['dateFormat']) ? $oConf->aConfig['dateFormat'] : ''; if ($userOwner != '') { $userOwner = str_replace('@userName', $process['USR_USERNAME'], $userOwner); $userOwner = str_replace('@firstName', $process['USR_FIRSTNAME'], $userOwner); $userOwner = str_replace('@lastName', $process['USR_LASTNAME'], $userOwner); if ($userOwner == " ( )") { $userOwner = '-'; } } else { $userOwner = $process['USR_FIRSTNAME'] . ' ' . $process['USR_LASTNAME']; } //get date format from configuration if ($creationDateMask != '') { list($date, $time) = explode(' ', $process['PRO_CREATE_DATE']); list($y, $m, $d) = explode('-', $date); list($h, $i, $s) = explode(':', $time); $process['PRO_CREATE_DATE'] = date($creationDateMask, mktime($h, $i, $s, $m, $d, $y)); } $process['PRO_CATEGORY_LABEL'] = trim($process['PRO_CATEGORY']) != '' ? $process['CATEGORY_NAME'] : '- ' . G::LoadTranslation('ID_PROCESS_NO_CATEGORY') . ' -'; $process['PRO_TITLE'] = $proTitle; $process['PRO_DESCRIPTION'] = $proDescription; $process['PRO_DEBUG'] = $process['PRO_DEBUG']; $process['PRO_DEBUG_LABEL'] = $process['PRO_DEBUG'] == "1" ? G::LoadTranslation('ID_ON') : G::LoadTranslation('ID_OFF'); $process['PRO_STATUS_LABEL'] = $process['PRO_STATUS'] == 'ACTIVE' ? G::LoadTranslation('ID_ACTIVE') : G::LoadTranslation('ID_INACTIVE'); $process['PRO_CREATE_USER_LABEL'] = $userOwner; if ($counters) { $process['CASES_COUNT_TO_DO'] = isset($casesCnt[$process['PRO_UID']]['TO_DO']) ? $casesCnt[$process['PRO_UID']]['TO_DO'] : 0; $process['CASES_COUNT_COMPLETED'] = isset($casesCnt[$process['PRO_UID']]['COMPLETED']) ? $casesCnt[$process['PRO_UID']]['COMPLETED'] : 0; $process['CASES_COUNT_DRAFT'] = isset($casesCnt[$process['PRO_UID']]['DRAFT']) ? $casesCnt[$process['PRO_UID']]['DRAFT'] : 0; $process['CASES_COUNT_CANCELLED'] = isset($casesCnt[$process['PRO_UID']]['CANCELLED']) ? $casesCnt[$process['PRO_UID']]['CANCELLED'] : 0; $process['CASES_COUNT'] = $casesCountTotal; } unset($process['PRO_CREATE_USER']); $aProcesses[] = $process; } $memcache =& PMmemcached::getSingleton(SYS_SYS); if (isset($memcache) && $memcache->enabled == 1) { return $aProcesses; } if ($limit == '') { $limit = count($aProcesses); } if ($this->sort != "PRO_CREATE_DATE") { if ($this->dir == "ASC") { usort($aProcesses, array($this, "ordProcessAsc")); } else { usort($aProcesses, array($this, "ordProcessDesc")); } } return $aProcesses; }
public function editTaskProperties($sTaskUID = '', $iForm = 1, $iIndex = 0) { $sw_template = false; try { switch ($iForm) { case 1: $sFilename = 'tasks/tasks_Definition.xml'; break; case 2: $sFilename = 'tasks/tasks_AssignmentRules.xml'; break; case 3: $sFilename = 'tasks/tasks_TimingControl.xml'; break; case 4: $sFilename = 'tasks/tasks_Owner.xml'; break; case 5: $sFilename = 'tasks/tasks_Permissions.xml'; break; case 6: $sFilename = 'tasks/tasks_Labels.xml'; break; case 7: $sFilename = 'tasks/tasks_Notifications.xml'; break; default: //if the $iForm is not one of the defaults then search under Plugins for an extended property. By JHL Jan 18, 2011 $oPluginRegistry =& PMPluginRegistry::getSingleton(); $activePluginsForTaskProperties = $oPluginRegistry->getTaskExtendedProperties(); $oPM->taskOptions = array(); foreach ($activePluginsForTaskProperties as $key => $taskPropertiesInfo) { $id = $taskPropertiesInfo->sNamespace . "--" . $taskPropertiesInfo->sName; if ($id == $iForm) { $sFilename = $taskPropertiesInfo->sPage; $sw_template = true; } } //$sFilename = 'tasks/tasks_Owner.xml'; break; } $oTask = new Task(); $aFields = $oTask->load($sTaskUID); $aFields['INDEX'] = $iIndex; $aFields['IFORM'] = $iForm; $aFields['LANG'] = SYS_LANG; /** * Task Notifications * */ if ($iForm == 7 || $iForm == 1) { G::loadClass('processes'); $files = Processes::getProcessFiles($aFields['PRO_UID'], 'mail'); $templates = array(); $templates[] = 'dummy'; foreach ($files as $file) { $templates[] = array('FILE' => $file['filename'], 'NAME' => $file['filename']); } global $_DBArray; $_DBArray['_TEMPLATES1'] = $templates; $_SESSION['_DBArray'] = $_DBArray; if ($iForm == 7) { // Additional configuration G::loadClass('configuration'); $oConf = new Configurations(); $oConf->loadConfig($x, 'TAS_EXTRA_PROPERTIES', $aFields['TAS_UID'], '', ''); $conf = $oConf->aConfig; if (isset($conf['TAS_DEF_MESSAGE_TYPE']) && isset($conf['TAS_DEF_MESSAGE_TYPE'])) { $aFields['TAS_DEF_MESSAGE_TYPE'] = $conf['TAS_DEF_MESSAGE_TYPE']; $aFields['TAS_DEF_MESSAGE_TEMPLATE'] = $conf['TAS_DEF_MESSAGE_TEMPLATE']; } } } if ($iForm == 3) { //Load Calendar Information $calendar = new Calendar(); $calendarObj = $calendar->getCalendarList(true, true); global $_DBArray; $_DBArray['availableCalendars'] = $calendarObj['array']; $_SESSION['_DBArray'] = $_DBArray; $calendarInfo = $calendar->getCalendarFor($sTaskUID, $sTaskUID, $sTaskUID); //If the function returns a DEFAULT calendar it means that this object doesn't have assigned any calendar $aFields['TAS_CALENDAR'] = $calendarInfo['CALENDAR_APPLIED'] != 'DEFAULT' ? $calendarInfo['CALENDAR_UID'] : ""; } if ($iForm == 2) { switch ($aFields["TAS_ASSIGN_TYPE"]) { case "SELF_SERVICE": $aFields["TAS_ASSIGN_TYPE"] = !empty($aFields["TAS_GROUP_VARIABLE"]) ? "SELF_SERVICE_EVALUATE" : $aFields["TAS_ASSIGN_TYPE"]; break; } } global $G_PUBLISH; G::LoadClass('xmlfield_InputPM'); $G_PUBLISH = new Publisher(); if ($sw_template) { $G_PUBLISH->AddContent('view', $sFilename); } else { $G_PUBLISH->AddContent('xmlform', 'xmlform', $sFilename, '', $aFields); } G::RenderPage('publish', 'raw'); return true; } catch (Exception $oError) { throw $oError; } }
public function genDataReport($httpData) { G::loadClass('pmTable'); require_once 'classes/model/AdditionalTables.php'; $result->message = ''; $result->success = true; $additionalTables = new AdditionalTables(); $table = $additionalTables->load($httpData->id); if ($table['PRO_UID'] != '') { $additionalTables->populateReportTable($table['ADD_TAB_NAME'], pmTable::resolveDbSource($table['DBS_UID']), $table['ADD_TAB_TYPE'], $table['PRO_UID'], $table['ADD_TAB_GRID'], $table['ADD_TAB_UID']); $result->message = 'generated for table ' . $table['ADD_TAB_NAME']; } return $result; }
public function createMySQLWorkspace () { G::LoadSystem('inputfilter'); $filter = new InputFilter(); ini_set( 'max_execution_time', '0' ); $info = new StdClass(); $info->result = false; $info->message = ''; $info->canRedirect = true; $db_hostname = trim( $_REQUEST['db_hostname'] ); $db_port = trim( $_REQUEST['db_port'] ); $db_port = $filter->validateInput($db_port); $db_username = trim( $_REQUEST['db_username'] ); $db_username = $filter->validateInput($db_username); $db_password = trim( $_REQUEST['db_password'] ); $db_password = $filter->validateInput($db_password); $wf = trim( $_REQUEST['wfDatabase'] ); $rb = trim( $_REQUEST['wfDatabase'] ); $rp = trim( $_REQUEST['wfDatabase'] ); $workspace = trim( $_REQUEST['workspace'] ); $pathConfig = trim( $_REQUEST['pathConfig'] ); $pathLanguages = trim( $_REQUEST['pathLanguages'] ); $pathPlugins = trim( $_REQUEST['pathPlugins'] ); $pathShared = trim( $_REQUEST['pathShared'] ); $pathXmlforms = trim( $_REQUEST['pathXmlforms'] ); $adminPassword = trim( $_REQUEST['adminPassword'] ); $adminPassword = $filter->validateInput($adminPassword); $adminUsername = trim( $_REQUEST['adminUsername'] ); $adminUsername = $filter->validateInput($adminUsername); $deleteDB = ($_REQUEST['deleteDB'] == 'true'); $userLogged = (isset($_REQUEST['userLogged']) ? ($_REQUEST['userLogged'] == 'true') : false); $userLogged = $filter->validateInput($userLogged); if (substr( $pathShared, - 1 ) != '/') { $pathShared .= '/'; } $this->installLog( '-------------------------------------------' ); $this->installLog( G::LoadTranslation('ID_CREATING_WORKSPACE', SYS_LANG, Array($workspace))); try { $db_host = ($db_port != '' && $db_port != 3306) ? $db_hostname . ':' . $db_port : $db_hostname; $db_host = $filter->validateInput($db_host); $db_username = $filter->validateInput($db_username); $db_password = $filter->validateInput($db_password); $this->link = @mysql_connect( $db_host, $db_username, $db_password ); $this->installLog( G::LoadTranslation('ID_CONNECT_TO_SERVER', SYS_LANG, Array($db_hostname, $db_port, $db_username ) )); if ($deleteDB) { $q = sprintf( 'DROP DATABASE IF EXISTS %s;', $wf, $wf ); $this->mysqlQuery( $q ); } // CREATE databases wf_workflow, rb_workflow and rp_workflow $q = sprintf( 'CREATE DATABASE IF NOT EXISTS %s;', $wf, $wf ); $this->mysqlQuery( $q ); // CREATE users and GRANT Privileges $wf_workpace = $wf; $rb_workpace = $wf; $rp_workpace = $wf; if (!$userLogged) { $wfPass = G::generate_password( 12 ); $this->setGrantPrivilegesMySQL( $wf, $wfPass, $wf, $db_hostname ); $this->setGrantPrivilegesMySQL( $rb, $wfPass, $wf, $db_hostname ); $this->setGrantPrivilegesMySQL( $rp, $wfPass, $wf, $db_hostname ); } else { $wfPass = $db_password; $rbPass = $db_password; $rpPass = $db_password; $wf = $db_username; $rb = $db_username; $rp = $db_username; } // Generate the db.php file and folders $pathSharedSites = $pathShared; $path_site = $pathShared . "/sites/" . $workspace . "/"; $db_file = $path_site . "db.php"; @mkdir( $path_site, 0777, true ); @mkdir( $path_site . "files/", 0777, true ); @mkdir( $path_site . "mailTemplates/", 0777, true ); @mkdir( $path_site . "public/", 0777, true ); @mkdir( $path_site . "reports/", 0777, true ); @mkdir( $path_site . "xmlForms", 0777, true ); $dbText = "<?php\n"; $dbText .= sprintf( "// Processmaker configuration\n" ); $dbText .= sprintf( " define ('DB_ADAPTER', '%s' );\n", 'mysql' ); $dbText .= sprintf( " define ('DB_HOST', '%s' );\n", $db_host ); $dbText .= sprintf( " define ('DB_NAME', '%s' );\n", $wf_workpace ); $dbText .= sprintf( " define ('DB_USER', '%s' );\n", $wf ); $dbText .= sprintf( " define ('DB_PASS', '%s' );\n", $wfPass ); $dbText .= sprintf( " define ('DB_RBAC_HOST', '%s' );\n", $db_host ); $dbText .= sprintf( " define ('DB_RBAC_NAME', '%s' );\n", $wf_workpace ); $dbText .= sprintf( " define ('DB_RBAC_USER', '%s' );\n", $wf ); $dbText .= sprintf( " define ('DB_RBAC_PASS', '%s' );\n", $wfPass ); $dbText .= sprintf( " define ('DB_REPORT_HOST', '%s' );\n", $db_host ); $dbText .= sprintf( " define ('DB_REPORT_NAME', '%s' );\n", $wf_workpace ); $dbText .= sprintf( " define ('DB_REPORT_USER', '%s' );\n", $wf ); $dbText .= sprintf( " define ('DB_REPORT_PASS', '%s' );\n", $wfPass ); if (defined('PARTNER_FLAG') || isset($_REQUEST['PARTNER_FLAG'])) { $dbText .= "\n"; $dbText .= " define ('PARTNER_FLAG', " . ((defined('PARTNER_FLAG')) ? PARTNER_FLAG : ((isset($_REQUEST['PARTNER_FLAG'])) ? $_REQUEST['PARTNER_FLAG']:'false')) . ");\n"; if ($this->systemName != '') { $dbText .= " define ('SYSTEM_NAME', '" . $this->systemName . "');\n"; } } $this->installLog( G::LoadTranslation('ID_CREATING', SYS_LANG, Array($db_file) )); file_put_contents( $db_file, $dbText ); // Generate the databases.php file $databases_file = $path_site . 'databases.php'; $dbData = sprintf( "\$dbAdapter = '%s';\n", 'mysql' ); $dbData .= sprintf( "\$dbHost = '%s';\n", $db_host ); $dbData .= sprintf( "\$dbName = '%s';\n", $wf_workpace ); $dbData .= sprintf( "\$dbUser = '******';\n", $wf ); $dbData .= sprintf( "\$dbPass = '******';\n", $wfPass ); $dbData .= sprintf( "\$dbRbacHost = '%s';\n", $db_host ); $dbData .= sprintf( "\$dbRbacName = '%s';\n", $wf_workpace ); $dbData .= sprintf( "\$dbRbacUser = '******';\n", $wf ); $dbData .= sprintf( "\$dbRbacPass = '******';\n", $wfPass ); $dbData .= sprintf( "\$dbReportHost = '%s';\n", $db_host ); $dbData .= sprintf( "\$dbReportName = '%s';\n", $wf_workpace ); $dbData .= sprintf( "\$dbReportUser = '******';\n", $wf ); $dbData .= sprintf( "\$dbReportPass = '******';\n", $wfPass ); $databasesText = str_replace( '{dbData}', $dbData, @file_get_contents( PATH_HOME . 'engine/templates/installer/databases.tpl' ) ); $this->installLog( G::LoadTranslation('ID_CREATING', SYS_LANG, Array($databases_file) )); file_put_contents( $databases_file, $databasesText ); // Execute scripts to create and populates databases $query = sprintf( "USE %s;", $wf_workpace ); $this->mysqlQuery( $query ); $this->mysqlFileQuery( PATH_RBAC_HOME . 'engine/data/mysql/schema.sql' ); $this->mysqlFileQuery( PATH_RBAC_HOME . 'engine/data/mysql/insert.sql' ); $query = sprintf( "USE %s;", $wf_workpace ); $this->mysqlQuery( $query ); $this->mysqlFileQuery( PATH_HOME . 'engine/data/mysql/schema.sql' ); $this->mysqlFileQuery( PATH_HOME . 'engine/data/mysql/insert.sql' ); if (defined('PARTNER_FLAG') || isset($_REQUEST['PARTNER_FLAG'])) { $this->setPartner(); //$this->setConfiguration(); } // Create the triggers if (file_exists( PATH_HOME . 'engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql' ) && file_exists( PATH_HOME . 'engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql' ) && file_exists( PATH_HOME . 'engine/methods/setup/setupSchemas/triggerApplicationUpdate.sql' ) && file_exists( PATH_HOME . 'engine/methods/setup/setupSchemas/triggerApplicationDelete.sql' ) && file_exists( PATH_HOME . 'engine/methods/setup/setupSchemas/triggerContentUpdate.sql' )) { $this->mysqlQuery( @file_get_contents( PATH_HOME . 'engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql' ) ); $this->mysqlQuery( @file_get_contents( PATH_HOME . 'engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql' ) ); $this->mysqlQuery( @file_get_contents( PATH_HOME . 'engine/methods/setup/setupSchemas/triggerApplicationUpdate.sql' ) ); $this->mysqlQuery( @file_get_contents( PATH_HOME . 'engine/methods/setup/setupSchemas/triggerApplicationDelete.sql' ) ); $this->mysqlQuery(@file_get_contents(PATH_HOME . "engine/methods/setup/setupSchemas/triggerSubApplicationInsert.sql")); $this->mysqlQuery( @file_get_contents( PATH_HOME . 'engine/methods/setup/setupSchemas/triggerContentUpdate.sql' ) ); $this->mysqlQuery( "INSERT INTO `CONFIGURATION` ( `CFG_UID`, `CFG_VALUE` ) VALUES ( 'APP_CACHE_VIEW_ENGINE', '" . mysql_real_escape_string( serialize( array ('LANG' => 'en','STATUS' => 'active' ) ) ) . "' )" ); $this->mysqlQuery("INSERT INTO EMAIL_SERVER(MESS_UID, MESS_ENGINE) VALUES('" . \ProcessMaker\Util\Common::generateUID() . "', 'MAIL')"); } // Change admin user $query = sprintf( "USE %s;", $wf_workpace ); $this->mysqlQuery( $query ); $query = sprintf( "UPDATE USERS SET USR_USERNAME = '******', USR_LASTNAME = '%s', USR_PASSWORD = '******' WHERE USR_UID = '00000000000000000000000000000001' ", $adminUsername, $adminUsername, G::encryptOld( $adminPassword ) ); $this->mysqlQuery( $query ); $query = sprintf( "UPDATE RBAC_USERS SET USR_USERNAME = '******', USR_LASTNAME = '%s', USR_PASSWORD = '******' WHERE USR_UID = '00000000000000000000000000000001' ", $adminUsername, $adminUsername, G::encryptOld( $adminPassword ) ); $this->mysqlQuery( $query ); // Write the paths_installed.php file (contains all the information configured so far) if (! file_exists( FILE_PATHS_INSTALLED )) { $sh = G::encryptOld( filemtime( PATH_GULLIVER . '/class.g.php' ) ); $h = G::encrypt( $db_hostname . $sh . $db_username . $sh . $db_password, $sh ); $dbText = "<?php\n"; $dbText .= sprintf( " define('PATH_DATA', '%s');\n", $pathShared ); $dbText .= sprintf( " define('PATH_C', '%s');\n", $pathShared . 'compiled/' ); $dbText .= sprintf( " define('HASH_INSTALLATION', '%s');\n", $h ); $dbText .= sprintf( " define('SYSTEM_HASH', '%s');\n", $sh ); $this->installLog( G::LoadTranslation('ID_CREATING', SYS_LANG, Array(FILE_PATHS_INSTALLED) )); file_put_contents( FILE_PATHS_INSTALLED, $dbText ); } /** * AppCacheView Build */ define( 'HASH_INSTALLATION', $h ); define( 'SYSTEM_HASH', $sh ); define( 'PATH_DB', $pathShared . 'sites' . PATH_SEP ); define( 'SYS_SYS', $workspace ); require_once ("propel/Propel.php"); Propel::init( PATH_CORE . "config/databases.php" ); $con = Propel::getConnection( 'workflow' ); require_once ('classes/model/AppCacheView.php'); $lang = 'en'; //setup the appcacheview object, and the path for the sql files $appCache = new AppCacheView(); $appCache->setPathToAppCacheFiles( PATH_METHODS . 'setup' . PATH_SEP . 'setupSchemas' . PATH_SEP ); //Update APP_DELEGATION.DEL_LAST_INDEX data $res = $appCache->updateAppDelegationDelLastIndex($lang, true); //APP_DELEGATION INSERT $res = $appCache->triggerAppDelegationInsert( $lang, true ); //APP_DELEGATION Update $res = $appCache->triggerAppDelegationUpdate( $lang, true ); //APPLICATION UPDATE $res = $appCache->triggerApplicationUpdate( $lang, true ); //APPLICATION DELETE $res = $appCache->triggerApplicationDelete( $lang, true ); //SUB_APPLICATION INSERT $res = $appCache->triggerSubApplicationInsert($lang, false); //CONTENT UPDATE $res = $appCache->triggerContentUpdate( $lang, true ); //build using the method in AppCacheView Class $res = $appCache->fillAppCacheView( $lang ); //end AppCacheView Build //erik: for new env conf handling G::loadClass( 'system' ); $envFile = PATH_CONFIG . 'env.ini'; // getting configuration from env.ini $sysConf = System::getSystemConfiguration( $envFile ); $langUri = 'en'; if (isset($sysConf['default_lang'])) { $langUri = $sysConf['default_lang']; } $skinUri = 'neoclassic'; if (isset($sysConf['default_skin'])) { $skinUri = $sysConf['default_skin']; } $updatedConf['default_lang'] = $langUri; $updatedConf['default_skin'] = $skinUri; $info->uri = PATH_SEP . 'sys' . $_REQUEST['workspace'] . PATH_SEP . $langUri . PATH_SEP . $skinUri . PATH_SEP . 'login' . PATH_SEP . 'login'; //register PMDesigner Client $http = (G::is_https() == true) ? 'https' : 'http'; $host = $_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] != '80' ? ':' . $_SERVER['SERVER_PORT'] : ''); $endpoint = sprintf( '%s://%s/sys%s/%s/%s/oauth2/grant', $http, $host, $workspace, $langUri, $skinUri ); // inserting the outh_client if (!$userLogged) { $query = sprintf( "USE %s;", $wf ); } else { $query = sprintf( "USE %s;", trim( $_REQUEST['wfDatabase']) ); } $this->mysqlQuery( $query ); $query = ( "INSERT INTO OAUTH_CLIENTS (CLIENT_ID,CLIENT_SECRET,CLIENT_NAME,CLIENT_DESCRIPTION,CLIENT_WEBSITE,REDIRECT_URI,USR_UID ) VALUES ('x-pm-local-client','179ad45c6ce2cb97cf1029e212046e81','PM Web Designer','ProcessMaker Web Designer App','www.processmaker.com','" . $endpoint . "','00000000000000000000000000000001' )"); $this->mysqlQuery( $query ); $indexFileUpdated = true; if (defined('PARTNER_FLAG') || isset($_REQUEST['PARTNER_FLAG'])) { $this->buildParternExtras($adminUsername, $adminPassword, $_REQUEST['workspace'], $langUri, $skinUri); } else { try { G::update_php_ini( $envFile, $updatedConf ); } catch (Exception $e) { $info->result = false; $info->message = G::LoadTranslation('ID_PROCESSMAKER_WRITE_CONFIG_INDEX', SYS_LANG, Array($envFile)); $info->message .= G::LoadTranslation('ID_PROCESSMAKER_UI_NOT_INSTALL'); $this->installLog( G::LoadTranslation('ID_INSTALL_BUT_ERROR', SYS_LANG, Array('env.ini'))); return $info; } try { // update the main index file $indexFileUpdated = System::updateIndexFile(array('lang' => 'en','skin' => $updatedConf['default_skin'])); } catch (Exception $e) { $info->result = false; $info->message = G::LoadTranslation('ID_PROCESSMAKER_WRITE_CONFIG_INDEX', SYS_LANG, Array(PATH_HTML . "index.html.")); $info->message .= G::LoadTranslation('ID_PROCESSMAKER_UI_NOT_INSTALL'); $this->installLog( G::LoadTranslation('ID_INSTALL_BUT_ERROR', SYS_LANG, Array('index.html'))); return $info; } } $this->installLog( G::LoadTranslation('ID_INDEX_FILE_UPDATED', SYS_LANG, Array($indexFileUpdated, $sysConf['default_lang'],$sysConf['default_skin']))); $this->installLog( G::LoadTranslation('ID_INSTALL_SUCESS') ); $info->result = true; $info->message = G::LoadTranslation('ID_INSTALL_SUCESS'); $info->messageFinish = G::LoadTranslation('ID_PROCESSMAKER_SUCCESS_INSTALLED', SYS_LANG, Array($workspace));; } catch (Exception $e) { $info->canRedirect = false; $info->result = false; $info->message = $e->getMessage(); } return $info; }
function getProcessArray($action, $userUid) { global $oAppCache; $processes = array(); $processes[] = array("", G::LoadTranslation("ID_ALL_PROCESS")); switch ($action) { case "simple_search": case "search": //In search action, the query to obtain all process is too slow, so we need to query directly to //process and content tables, and for that reason we need the current language in AppCacheView. G::loadClass("configuration"); $oConf = new Configurations(); $oConf->loadConfig($x, "APP_CACHE_VIEW_ENGINE", "", "", "", ""); $appCacheViewEngine = $oConf->aConfig; $lang = isset($appCacheViewEngine["LANG"]) ? $appCacheViewEngine["LANG"] : "en"; $cProcess = new Criteria("workflow"); $cProcess->clearSelectColumns(); $cProcess->addSelectColumn(ProcessPeer::PRO_UID); $cProcess->addSelectColumn(ContentPeer::CON_VALUE); $del = DBAdapter::getStringDelimiter(); $conds = array(); $conds[] = array(ProcessPeer::PRO_UID, ContentPeer::CON_ID); $conds[] = array(ContentPeer::CON_CATEGORY, $del . "PRO_TITLE" . $del); $conds[] = array(ContentPeer::CON_LANG, $del . $lang . $del); $cProcess->addJoinMC($conds, Criteria::LEFT_JOIN); $cProcess->add(ProcessPeer::PRO_STATUS, "ACTIVE"); $oDataset = ProcessPeer::doSelectRS($cProcess); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $processes[] = array($aRow["PRO_UID"], $aRow["CON_VALUE"]); $oDataset->next(); } return $processes; break; case "consolidated": default: $cProcess = $oAppCache->getToDoListCriteria($userUid); //fast enough break; } $cProcess->clearSelectColumns(); $cProcess->setDistinct(); $cProcess->addSelectColumn(AppCacheViewPeer::PRO_UID); $cProcess->addSelectColumn(AppCacheViewPeer::APP_PRO_TITLE); $oDataset = AppCacheViewPeer::doSelectRS($cProcess); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $processes[] = array($aRow["PRO_UID"], $aRow["APP_PRO_TITLE"]); $oDataset->next(); } return $processes; }
/** * Get list status indicator * * @access public * @param array $options, Data for list * @return array * * @author Marco Antonio Nina <*****@*****.**> * @copyright Colosa - Bolivia */ public function getStatusIndicator($options = array()) { Validator::isArray($options, '$options'); $usrUid = isset( $options["usrUid"] ) ? $options["usrUid"] : ""; G::loadClass('indicatorsCalculator'); $calculator = new \IndicatorsCalculator(); $result = $calculator->statusIndicator($usrUid); return $result; }