/** * fix the 32K issue, by migrating /files directory structure to an uid tree structure based. * @param $workspace got the site(s) the manager wants to upgrade */ public function upgradeCasesDirectoryStructure ($workspace) { define('PATH_DOCUMENT', PATH_DATA . 'sites/' . $workspace . '/' . 'files/'); $doclevel = explode('/', PATH_DOCUMENT); $length = sizeof(PATH_DOCUMENT); $filesDir = $doclevel[$length - 1]; if (is_dir(PATH_DOCUMENT) && is_writable($filesDir)) { CLI::logging(CLI::error("Error:" . PATH_DOCUMENT . " is not writable... please check the su permissions.\n")); return; } $directory = array(); $blackHoleDir = G::getBlackHoleDir(); $directory = glob(PATH_DOCUMENT . "*", GLOB_ONLYDIR); $dirslength = sizeof($directory); if (! @chdir(PATH_DOCUMENT)) { CLI::logging(CLI::error("Cannot use Document directory. The upgrade must be done as root.\n")); return; } //Start migration for ($index = 0; $index < $dirslength; $index++) { $depthdirlevel = explode('/', $directory[$index]); $lastlength = sizeof($depthdirlevel); $UIdDir = $depthdirlevel[$lastlength - 1]; $lenDir = strlen($UIdDir); if ($lenDir == 32 && $UIdDir != $blackHoleDir) { $len = count(scandir($UIdDir)); if ($len > 2) { //lenght = 2, because the function check . and .. dir links $newDiretory = G::getPathFromUIDPlain($UIdDir); CLI::logging("Migrating $UIdDir to $newDiretory\n"); G::mk_dir($newDiretory, 0777); //echo `cp -R $UIdDir/* $newDiretory/`; if (G::recursive_copy($UIdDir, $newDiretory)) { CLI::logging("Removing $UIdDir...\n"); G::rm_dir($UIdDir); rmdir($UIdDir);//remove the diretory itself, G::rm_dir cannot do it } else { CLI::logging(CLI::error("Error: Failure at coping from $UIdDir...\n")); } } else { CLI::logging("$UIdDir is empty, removing it\n"); rmdir($UIdDir);//remove the diretory itself } } } //Start '0' directory migration $black = PATH_DOCUMENT . $blackHoleDir . '/'; if (is_dir($black)) { $newpattern = array(); $file = glob($black . '*.*');//files only $dirlen = count($file); for ($index = 0; $index < $dirlen; $index++) { $levelfile = explode('/', $file[$index]); $lastlevel = sizeof($levelfile); $goalFile = $levelfile[$lastlevel - 1]; $newpattern = G::getPathFromFileUIDPlain($blackHoleDir, $goalFile); CLI::logging("Migrating $blackHoleDir file: $goalFile\n"); G::mk_dir($blackHoleDir . PATH_SEP . $newpattern[0], 0777); //echo `cp -R $black$goalFile $black$newpattern[0]/$newpattern[1]`; if (copy($black . $goalFile, $black . $newpattern[0] . '/' . $newpattern[1])) { unlink($file[$index]); } else { CLI::logging(CLI::error("Error: Failure at copy $file[$index] files...\n")); } } } //Set value of 2 to the directory structure version. $this->initPropel(true); G::LoadClass("configuration"); $conf = new Configurations(); if (!$conf->exists("ENVIRONMENT_SETTINGS")) { $conf->aConfig = array ("format" => '@userName (@firstName @lastName)', "dateFormat" => 'd/m/Y', "startCaseHideProcessInf" => false, "casesListDateFormat" => 'Y-m-d H:i:s', "casesListRowNumber" => 25, "casesListRefreshTime" => 120 ); $conf->saveConfig( 'ENVIRONMENT_SETTINGS', '' ); } $conf->setDirectoryStructureVer(2); CLI::logging(CLI::info("Version Directory Structure is 2 now.\n")); }
/** * Extract the structure version value from serializated table field and check it. * @return true if the version is bigger than 1 */ public function gotDirectoryStructureVer2() { G::LoadClass("configuration"); $configuration = new Configurations(); if (defined('SYS_SYS') && $configuration->exists("ENVIRONMENT_SETTINGS")) { return $configuration->getDirectoryStructureVer() > 1; } return false; }
public function __construct($flagActivatePlugins = true) { G::LoadClass('serverConfiguration'); $oServerConf =& serverConf::getSingleton(); $oServerConf->setProperty('LOGIN_NO_WS', true); //to do: this files probably needs to be in core, since they are GPL2 //include_once (PATH_PLUGINS . 'enterprise' . PATH_SEP . 'classes' . PATH_SEP . 'class.license.lib.php'); //include_once (PATH_PLUGINS . 'enterprise' . PATH_SEP . 'classes' . PATH_SEP . 'class.license.app.php'); require_once PATH_CORE . 'classes' . PATH_SEP . 'class.license.lib.php'; require_once PATH_CORE . 'classes' . PATH_SEP . 'class.license.app.php'; //searching .dat files in workspace folder $server_array = $_SERVER; $licfile = glob(PATH_DATA_SITE . "*.dat"); if (count($licfile) > 0 && is_file($licfile[0])) { $oServerConf->setProperty('ACTIVE_LICENSE', array(SYS_SYS => "")); } $activeLicenseSetting = $oServerConf->getProperty('ACTIVE_LICENSE'); if (isset($activeLicenseSetting[SYS_SYS]) && file_exists($activeLicenseSetting[SYS_SYS])) { $licenseFile = $activeLicenseSetting[SYS_SYS]; } else { $activeLicense = $this->getActiveLicense(); $oServerConf->setProperty('ACTIVE_LICENSE', array(SYS_SYS => $activeLicense['LICENSE_PATH'])); $licenseFile = $activeLicense['LICENSE_PATH']; } $application = new license_application($licenseFile, false, true, false, true); $application->set_server_vars($server_array); $application->DATE_STRING = 'Y-m-d H:i:s'; $results = $application->validate(); $validStatus = array('OK', 'EXPIRED', 'TMINUS'); $this->result = $results['RESULT']; $this->features = array(); $this->licensedfeatures = array(); $this->licensedfeaturesList = array(); if (in_array($this->result, $validStatus)) { $this->serial = "3ptta7Xko2prrptrZnSd356aqmPXvMrayNPFj6CLdaR1pWtrW6qPw9jV0OHjxrDGu8LVxtmSm9nP5kR23HRpdZWccpeui+bKkK°DoqCt2Kqgpq6Vg37s"; $info['FIRST_NAME'] = $results['DATA']['FIRST_NAME']; $info['LAST_NAME'] = $results['DATA']['LAST_NAME']; $info['DOMAIN_WORKSPACE'] = $results['DATA']['DOMAIN_WORKSPACE']; $this->date = $results['DATE']; $this->info = $info; $this->type = $results['DATA']['TYPE']; $this->plan = isset($results['DATA']['PLAN']) ? $results['DATA']['PLAN'] : ""; $this->id = $results['ID']; $this->expireIn = $this->getExpireIn(); $this->features = $this->result != 'TMINUS' ? isset($results['DATA']['CUSTOMER_PLUGIN']) ? $results['DATA']['CUSTOMER_PLUGIN'] : $this->getActiveFeatures() : array(); $this->licensedfeatures = $this->result != 'TMINUS' ? isset($results['DATA']['CUSTOMER_LICENSED_FEATURES']) ? $results['DATA']['CUSTOMER_LICENSED_FEATURES'] : array() : array(); $this->licensedfeaturesList = isset($results['DATA']['LICENSED_FEATURES_LIST']) ? $results['DATA']['LICENSED_FEATURES_LIST'] : null; $this->status = $this->getCurrentLicenseStatus(); if (isset($results['LIC'])) { $resultsRegister = $results['LIC']; $this->server = $results['LIC']['SRV']; $this->file = $results['LIC']['FILE']; $this->workspace = isset($results['LIC']['WORKSPACE']) ? $results['LIC']['WORKSPACE'] : 'pmLicenseSrv'; $this->licenseSerial = isset($results['LIC']['SERIAL']) ? $results['LIC']['SERIAL'] : ''; $this->supportStartDate = isset($results['DATA']['SUPPORT_START_DATE']) ? $results['DATA']['SUPPORT_START_DATE'] : ''; $this->supportEndDate = isset($results['DATA']['SUPPORT_END_DATE']) ? $results['DATA']['SUPPORT_END_DATE'] : ''; $this->supportStartDate = date("Y-m-d H:i:s", strtotime($this->supportStartDate)); $this->supportEndDate = date("Y-m-d H:i:s", strtotime($this->supportEndDate)); G::LoadClass("configuration"); $conf = new Configurations(); if (defined('SYS_SYS') && $conf->exists("ENVIRONMENT_SETTINGS")) { $this->supportStartDate = $conf->getSystemDate($this->supportStartDate); $this->supportEndDate = $conf->getSystemDate($this->supportEndDate); } else { $this->supportStartDate = G::getformatedDate($this->supportStartDate, 'M d, yyyy', SYS_LANG); $this->supportEndDate = G::getformatedDate($this->supportEndDate, 'M d, yyyy', SYS_LANG); } } else { $resultsRegister = array(); $resultsRegister['ID'] = $results['DATA']['DOMAIN_WORKSPACE']; $this->server = null; $this->file = null; } $resultsRegister['date'] = $results['DATE']; $resultsRegister['info'] = $info; $resultsRegister['type'] = $results['DATA']['TYPE']; if ($oServerConf->getProperty('LICENSE_INFO')) { $licInfoA = $oServerConf->getProperty('LICENSE_INFO'); } else { $licInfoA = array(); } $licInfoA[SYS_SYS] = $resultsRegister; $oServerConf->setProperty('LICENSE_INFO', $licInfoA); } if ($flagActivatePlugins) { $this->activateFeatures(); } }
private function _default() { require_once PATH_THIRDPARTY . 'smarty/libs/Smarty.class.php'; // put full path to Smarty.class.php global $G_ENABLE_BLANK_SKIN; //menu global $G_PUBLISH; global $G_MAIN_MENU; global $G_SUB_MENU; global $G_MENU_SELECTED; global $G_SUB_MENU_SELECTED; global $G_ID_MENU_SELECTED; global $G_ID_SUB_MENU_SELECTED; G::verifyPath(PATH_SMARTY_C, true); G::verifyPath(PATH_SMARTY_CACHE, true); $smarty = new Smarty(); $oHeadPublisher =& headPublisher::getSingleton(); $smarty->compile_dir = PATH_SMARTY_C; $smarty->cache_dir = PATH_SMARTY_CACHE; $smarty->config_dir = PATH_THIRDPARTY . 'smarty/configs'; //To setup en extJS Theme for this Skin G::LoadClass('serverConfiguration'); $oServerConf =& serverConf::getSingleton(); $extSkin = $oServerConf->getProperty("extSkin"); if (!$extSkin) { $extSkin = array(); } $extSkin[SYS_SKIN] = "xtheme-gray"; $oServerConf->setProperty("extSkin", $extSkin); //End of extJS Theme setup if (isset($G_ENABLE_BLANK_SKIN) && $G_ENABLE_BLANK_SKIN) { $smarty->template_dir = $this->layoutFileBlank['dirname']; $smarty->force_compile = $this->forceTemplateCompile; $smarty->display($layoutFileBlank['basename']); } else { $smarty->template_dir = $this->layoutFile['dirname']; $meta = null; $header = null; if (preg_match("/^.*\\(.*MSIE (\\d+)\\..+\\).*\$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch)) { $ie = intval($arrayMatch[1]); if ($ie == 10) { $ie = 8; $meta = "<meta http-equiv=\"X-UA-Compatible\" content=\"IE={$ie}\" />"; } } if (isset($oHeadPublisher)) { if (defined('SYS_SYS')) { $oHeadPublisher->title = isset($_SESSION['USR_USERNAME']) ? '(' . $_SESSION['USR_USERNAME'] . ' ' . G::LoadTranslation('ID_IN') . ' ' . SYS_SYS . ')' : ''; } $header = $oHeadPublisher->printHeader(); $header .= $oHeadPublisher->getExtJsStylesheets($this->cssFileName); } $smarty->assign("meta", $meta); $smarty->assign("header", $header); $footer = ''; if (strpos($_SERVER['REQUEST_URI'], '/login/login') !== false) { $freeOfChargeText = ""; if (!defined('SKIP_FREE_OF_CHARGE_TEXT')) { $freeOfChargeText = "Supplied free of charge with no support, certification, warranty, <br>maintenance nor indemnity by Colosa and its Certified Partners."; } if (class_exists('pmLicenseManager')) { $freeOfChargeText = ""; } $fileFooter = PATH_SKINS . SYS_SKIN . PATH_SEP . 'footer.html'; if (file_exists($fileFooter)) { $footer .= file_get_contents($fileFooter); } else { $fileFooter = PATH_SKIN_ENGINE . SYS_SKIN . PATH_SEP . 'footer.html'; if (file_exists($fileFooter)) { $footer .= file_get_contents($fileFooter); } else { $fileFooter = PATH_CUSTOM_SKINS . SYS_SKIN . PATH_SEP . 'footer.html'; if (file_exists($fileFooter)) { $footer .= file_get_contents($fileFooter); } else { $footer .= "<br />Copyright © 2003-" . date('Y') . " <a href=\"http://www.colosa.com\" alt=\"Colosa, Inc.\" target=\"_blank\">Colosa, Inc.</a> All rights reserved.<br /> {$freeOfChargeText} " . "<br><br/><a href=\"http://www.processmaker.com\" alt=\"Powered by ProcessMaker - Open Source Workflow & Business Process Management (BPM) Management Software\" title=\"Powered by ProcessMaker\" target=\"_blank\"></a>"; } } } } $oMenu = new Menu(); $menus = $oMenu->generateArrayForTemplate($G_MAIN_MENU, 'SelectedMenu', 'mainMenu', $G_MENU_SELECTED, $G_ID_MENU_SELECTED); $smarty->assign('menus', $menus); $oSubMenu = new Menu(); $subMenus = $oSubMenu->generateArrayForTemplate($G_SUB_MENU, 'selectedSubMenu', 'subMenu', $G_SUB_MENU_SELECTED, $G_ID_SUB_MENU_SELECTED); $smarty->assign('subMenus', $subMenus); if (!defined('NO_DISPLAY_USERNAME')) { define('NO_DISPLAY_USERNAME', 0); } if (NO_DISPLAY_USERNAME == 0) { $switch_interface = isset($_SESSION['user_experience']) && $_SESSION['user_experience'] == 'SWITCHABLE'; $smarty->assign('user_logged', isset($_SESSION['USER_LOGGED']) ? $_SESSION['USER_LOGGED'] : ''); $smarty->assign('tracker', SYS_COLLECTION == 'tracker' ? $G_PUBLISH->Parts[0]['File'] != 'tracker/login' ? true : '' : ''); $smarty->assign('switch_interface', $switch_interface); $smarty->assign('switch_interface_label', G::LoadTranslation('ID_SWITCH_INTERFACE')); $smarty->assign('rolename', isset($_SESSION['USR_ROLENAME']) ? $_SESSION['USR_ROLENAME'] . '' : ''); $smarty->assign('pipe', isset($_SESSION['USR_USERNAME']) ? ' | ' : ''); $smarty->assign('logout', G::LoadTranslation('ID_LOGOUT')); $smarty->assign('workspace', defined('SYS_SYS') ? SYS_SYS : ''); $uws = isset($_SESSION['USR_ROLENAME']) && $_SESSION['USR_ROLENAME'] != '' ? strtolower(G::LoadTranslation('ID_WORKSPACE_USING')) : G::LoadTranslation('ID_WORKSPACE_USING'); $smarty->assign('workspace_label', $uws); G::LoadClass("configuration"); $conf = new Configurations(); if (defined('SYS_SYS') && $conf->exists("ENVIRONMENT_SETTINGS")) { $smarty->assign('udate', $conf->getSystemDate(date('Y-m-d'))); } else { $smarty->assign('udate', G::getformatedDate(date('Y-m-d'), 'M d, yyyy', SYS_LANG)); } $name = $conf->userNameFormat(isset($_SESSION['USR_USERNAME']) ? $_SESSION['USR_USERNAME'] : '', isset($_SESSION['USR_FULLNAME']) ? htmlentities($_SESSION['USR_FULLNAME'], ENT_QUOTES, 'UTF-8') : ''); $smarty->assign('user', $name); } if (class_exists('pmLicenseManager')) { $pmLicenseManagerO =& pmLicenseManager::getSingleton(); $expireIn = $pmLicenseManagerO->getExpireIn(); $expireInLabel = $pmLicenseManagerO->getExpireInLabel(); //if($expireIn<=30){ if ($expireInLabel != "") { $smarty->assign('msgVer', '<label class="textBlack">' . $expireInLabel . '</label> '); } //} } if (defined('SYS_SYS')) { $logout = '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/login/login'; } else { $logout = '/sys/' . SYS_LANG . '/' . SYS_SKIN . '/login/login'; } $smarty->assign('linklogout', $logout); $smarty->assign('footer', $footer); $smarty->assign('tpl_menu', PATH_TEMPLATE . 'menu.html'); $smarty->assign('tpl_submenu', PATH_TEMPLATE . 'submenu.html'); G::LoadClass('replacementLogo'); $oLogoR = new replacementLogo(); if (defined("SYS_SYS")) { $aFotoSelect = $oLogoR->getNameLogo(isset($_SESSION['USER_LOGGED']) ? $_SESSION['USER_LOGGED'] : ''); if (is_array($aFotoSelect)) { $sFotoSelect = trim($aFotoSelect['DEFAULT_LOGO_NAME']); $sWspaceSelect = trim($aFotoSelect['WORKSPACE_LOGO_NAME']); } } if (class_exists('PMPluginRegistry')) { $oPluginRegistry =& PMPluginRegistry::getSingleton(); if (isset($sFotoSelect) && $sFotoSelect != '' && !strcmp($sWspaceSelect, SYS_SYS)) { $sCompanyLogo = $oPluginRegistry->getCompanyLogo($sFotoSelect); $sCompanyLogo = "/sys" . SYS_SYS . "/" . SYS_LANG . "/" . SYS_SKIN . "/setup/showLogoFile.php?id=" . base64_encode($sCompanyLogo); } else { $sCompanyLogo = $oPluginRegistry->getCompanyLogo('/images/processmaker.logo.jpg'); } } else { $sCompanyLogo = '/images/processmaker.logo.jpg'; } $smarty->assign('logo_company', $sCompanyLogo); $smarty->force_compile = $this->forceTemplateCompile; $smarty->display($this->layoutFile['basename']); } }
/** * fix the 32K issue, by migrating /files directory structure to an uid tree structure based. * @param $workspace got the site(s) the manager wants to upgrade */ public function upgradeCasesDirectoryStructure($workspace) { define('PATH_DOCUMENT', PATH_DATA . 'sites/' . $workspace . '/' . 'files/'); $doclevel = explode('/', PATH_DOCUMENT); $length = sizeof(PATH_DOCUMENT); $filesDir = $doclevel[$length - 1]; if (is_dir(PATH_DOCUMENT) && is_writable($filesDir)) { CLI::logging(CLI::error("Error:" . PATH_DOCUMENT . " is not writable... please check the su permissions.\n")); return; } $directory = array(); $blackHoleDir = G::getBlackHoleDir(); $directory = glob(PATH_DOCUMENT . "*", GLOB_ONLYDIR); $dirslength = sizeof($directory); if (!@chdir(PATH_DOCUMENT)) { CLI::logging(CLI::error("Cannot use Document directory. The upgrade must be done as root.\n")); return; } //Start migration for ($index = 0; $index < $dirslength; $index++) { $depthdirlevel = explode('/', $directory[$index]); $lastlength = sizeof($depthdirlevel); $UIdDir = $depthdirlevel[$lastlength - 1]; $lenDir = strlen($UIdDir); if ($lenDir == 32 && $UIdDir != $blackHoleDir) { $len = count(scandir($UIdDir)); if ($len > 2) { //lenght = 2, because the function check . and .. dir links $newDiretory = G::getPathFromUIDPlain($UIdDir); CLI::logging("Migrating {$UIdDir} to {$newDiretory}\n"); G::mk_dir($newDiretory); //echo `cp -R $UIdDir/* $newDiretory/`; if (G::recursive_copy($UIdDir, $newDiretory)) { CLI::logging("Removing {$UIdDir}...\n"); G::rm_dir($UIdDir); rmdir($UIdDir); //remove the diretory itself, G::rm_dir cannot do it } else { CLI::logging(CLI::error("Error: Failure at coping from {$UIdDir}...\n")); } } else { CLI::logging("{$UIdDir} is empty, removing it\n"); rmdir($UIdDir); //remove the diretory itself } } } //Start '0' directory migration $black = PATH_DOCUMENT . $blackHoleDir . '/'; if (is_dir($black)) { $newpattern = array(); $file = glob($black . '*.*'); //files only $dirlen = count($file); for ($index = 0; $index < $dirlen; $index++) { $levelfile = explode('/', $file[$index]); $lastlevel = sizeof($levelfile); $goalFile = $levelfile[$lastlevel - 1]; $newpattern = G::getPathFromFileUIDPlain($blackHoleDir, $goalFile); CLI::logging("Migrating {$blackHoleDir} file: {$goalFile}\n"); G::mk_dir($blackHoleDir . '/' . $newpattern[0]); //echo `cp -R $black$goalFile $black$newpattern[0]/$newpattern[1]`; if (copy($black . $goalFile, $black . $newpattern[0] . '/' . $newpattern[1])) { unlink($file[$index]); } else { CLI::logging(CLI::error("Error: Failure at copy {$file[$index]} files...\n")); } } } //Set value of 2 to the directory structure version. $this->initPropel(true); G::LoadClass("configuration"); $conf = new Configurations(); if ($conf->exists("ENVIRONMENT_SETTINGS")) { $conf->setDirectoryStructureVer(2); CLI::logging(CLI::info("Version Directory Structure is 2 now.\n")); } else { CLI::logging(CLI::error("Error: found at try to use ENVIRONMENT_SETTINGS row.\n")); return; } }
<?php require_once PATH_CORE . 'classes' . PATH_SEP . 'class.pmLicenseManager.php'; require_once PATH_CORE . "classes" . PATH_SEP . "model" . PATH_SEP . "AddonsStore.php"; require_once PATH_CORE . "classes" . PATH_SEP . "class.enterpriseUtils.php"; AddonsStore::checkLicenseStore(); $licenseManager =& pmLicenseManager::getSingleton(); $oHeadPublisher =& headPublisher::getSingleton(); if (isset($licenseManager->date) && is_array($licenseManager->date)) { G::LoadClass("configuration"); $conf = new Configurations(); if (defined('SYS_SYS') && $conf->exists("ENVIRONMENT_SETTINGS")) { $licenseManager->date['START'] = date("Y-m-d H:i:s", strtotime($licenseManager->date['HUMAN']['START'])); $licenseManager->date['END'] = date("Y-m-d H:i:s", strtotime($licenseManager->date['HUMAN']['END'])); $licenseManager->date['START'] = $conf->getSystemDate($licenseManager->date['START']); $licenseManager->date['END'] = $conf->getSystemDate($licenseManager->date['END']); } else { $licenseManager->date['START'] = date("Y-m-d H:i:s", strtotime($licenseManager->date['HUMAN']['START'])); $licenseManager->date['END'] = date("Y-m-d H:i:s", strtotime($licenseManager->date['HUMAN']['END'])); $licenseManager->date['START'] = G::getformatedDate($licenseManager->date['START'], 'M d, yyyy', SYS_LANG); $licenseManager->date['END'] = G::getformatedDate($licenseManager->date['END'], 'M d, yyyy', SYS_LANG); } } if (isset($licenseManager->result) && $licenseManager->result == "OK") { $oHeadPublisher->assign("license_start_date", $licenseManager->date["START"]); $oHeadPublisher->assign("license_end_date", $licenseManager->expireIn != "NEVER" ? $licenseManager->date["END"] : "NA"); $oHeadPublisher->assign("license_user", $licenseManager->info["FIRST_NAME"] . " " . $licenseManager->info["LAST_NAME"] . " (" . $licenseManager->info["DOMAIN_WORKSPACE"] . ")"); $oHeadPublisher->assign("license_span", $licenseManager->expireIn != "NEVER" ? ceil($licenseManager->date["SPAN"] / 60 / 60 / 24) : "~"); $oHeadPublisher->assign("license_name", $licenseManager->type); $oHeadPublisher->assign("license_server", $licenseManager->server); $oHeadPublisher->assign("license_expires", $licenseManager->expireIn);
public static function execute() { //Check if this is the version to apply the patch $count = 0; $task = new Task(); if (patch::$isPathchable && method_exists($task, 'getTasGroupVariable')) { $con = Propel::getConnection("workflow"); $stmt = $con->prepareStatement("select TAS_UID from TASK where TAS_ASSIGN_TYPE = 'SELF_SERVICE';"); $recordSet = $stmt->executeQuery(); $recordSet->next(); $aRow = $recordSet->getRow(); while ($aRow) { $tasUid = $aRow['TAS_UID']; $conUser = Propel::getConnection("workflow"); $stmtUser = $conUser->prepareStatement("select * from TASK_USER where TAS_UID = '" . $tasUid . "';"); $recordSetTaskUser = $stmtUser->executeQuery(); if ($recordSetTaskUser->next()) { echo "Patching uid: " . $tasUid . "\n"; //Set the values if they match the pattern $conChange = Propel::getConnection("workflow"); $stmtChange = $conChange->prepareStatement("update TASK set TAS_GROUP_VARIABLE = '' where TAS_UID = '" . $tasUid . "';"); $recordResult = $stmtChange->executeQuery(); $count++; } $recordSet->next(); $aRow = $recordSet->getRow(); } } //Fix BUG-15394 G::LoadClass("configuration"); $conf = new Configurations(); if (!$conf->exists("HOTFIX")) { //HOTFIX, Create empty record $conf->aConfig = array(); $conf->saveConfig("HOTFIX", ""); } $arrayHotfix = $conf->getConfiguration("HOTFIX", ""); $arrayHotfix = is_array($arrayHotfix) ? $arrayHotfix : array($arrayHotfix); $pmVersion = self::pmVersion(System::getVersion()) . ""; if (($pmVersion == "2.5.2.4" || $pmVersion == "2.8") && !in_array("15394", $arrayHotfix)) { $cnn = Propel::getConnection("workflow"); $stmt = $cnn->prepareStatement("UPDATE USERS_PROPERTIES SET USR_LOGGED_NEXT_TIME = 0"); $rs = $stmt->executeQuery(); //HOTFIX, Update record (add 15394) $arrayHotfix[] = "15394"; $conf->aConfig = $arrayHotfix; $conf->saveConfig("HOTFIX", ""); } //echo echo $count . " records where patched to use SELF_SERVICE feature.\n"; }