include_once MODULE_PATH . "/system/lib/ModuleLoader.php"; $moduleName = $argv[1]; $version = isset($argv[2]) ? $argv[2] : 'latest'; if ($moduleName != "all" && $moduleName != "") { $moduleArr = array($moduleName); } else { $moduleArr = glob(MODULE_PATH . "/*"); for ($i = 0; $i < count($moduleArr); $i++) { $moduleArr[$i] = basename($moduleArr[$i]); } } foreach ($moduleArr as $moduleName) { $loader = new ModuleLoader($moduleName); echo "Start upgrading {$moduleName} module ..." . PHP_EOL; echo "--------------------------------------------------------" . PHP_EOL; $loader->upgradeModule(); echo $loader->errors . "" . PHP_EOL; // load the module again echo PHP_EOL . "Reload module ..." . PHP_EOL; $loader->loadModule($installSql); echo $loader->errors . "" . PHP_EOL; // give predefined users access to actions echo "Give admin to access all actions of module '{$moduleName}'" . PHP_EOL; //giveActionAccess("module='$moduleName'", 1); // admin to access all actions echo "--------------------------------------------------------" . PHP_EOL; echo "End loading {$moduleName} module" . PHP_EOL; } // give predefined users access to actions function giveActionAccess($where, $role_id) { $db = BizSystem::dbConnection();
public function installPackage($cpkFilePath) { $package = $this->_installPackage; $uri = $this->_repoUri; $this->setInstallInfo($package, array("state" => "Install", "log" => "Installing ...")); //trigger remote log action $operator = Openbiz::$app->getProfile()->getProfileName(Openbiz::$app->getUserProfile("Id"), 'short'); $app_id = $package['app_id']; $release_id = $package['Id']; $this->recordInstallLog($uri, $app_id, $release_id, SITE_URL, $operator); $tmpFolder = OPENBIZ_APP_FILE_PATH . DIRECTORY_SEPARATOR . "tmpfiles" . DIRECTORY_SEPARATOR; $toFolder = $tmpFolder . time(); try { $this->_unpack($cpkFilePath, $toFolder); } catch (Exception $e) { throw new Exception("ERROR in unpack {$cpkFilePath}. " . $e->getMessage()); } $this->pkg_log("Unpack. {$cpkFilePath} is unpacked to {$toFolder}\n"); // copy files to target folder from the tmp folder $this->_filecopy($toFolder); if (strtolower($package['type']) == 'module' || strtolower($package['type']) == 'application') { // invoke module upgrade command foreach ($this->_installModules as $moduleName) { $this->pkg_log("invoke module upgrade command\n"); $loader = new ModuleLoader($moduleName); $loader->debug = 0; $this->pkg_log("Start upgrading {$moduleName} module ..." . PHP_EOL); $this->pkg_log("--------------------------------------------------------" . PHP_EOL); $result = $loader->upgradeModule(true); $this->pkg_log($loader->errors . "" . PHP_EOL); $this->pkg_log($loader->logs . "" . PHP_EOL); if ($result == false) { throw new Exception("Error in install package. " . $loader->errors); } // load the module again $this->pkg_log("Reload module ..." . PHP_EOL); $loader->loadModule($installSql); $this->pkg_log($loader->errors . "" . PHP_EOL); } } $time = date('Y-m-d H:i:s'); //reload current profile Openbiz::getService(ACL_SERVICE)->clearACLCache(); $this->setInstallInfo($package, array("time" => $time, "version" => $package['version'], "state" => "OK", "log" => "Completed")); }