. */ namespace SP\Controller; use SP\Config\Config; use SP\Config\ConfigDB; use SP\Core\Exceptions\SPException; use SP\Core\Init; use SP\Core\Session; use SP\Core\SessionUtil; use SP\Core\Upgrade\Upgrade; use SP\Http\Request; use SP\Util\Util; /** * Class MainActionController * * @package SP\Controller */ class MainActionController { /** * Acción para actualizar lda BD * * @param $dbVersion * @return bool */ public function upgradeDbAction($dbVersion) { $action = Request::analyze('a'); $hash = Request::analyze('h'); $confirm = Request::analyze('chkConfirm', false, false, true); if ($confirm === true && $action === 'upgrade' && $hash === Config::getConfig()->getUpgradeKey() ) { $this->upgrade($dbVersion, 'db'); } else { $controller = new MainController(); $controller->getUpgrade($dbVersion); } return false; } /** * Acción para actualizar la aplicación * * @param $appVersion * @return bool */ public function upgradeAppAction($appVersion) { $action = Request::analyze('a'); $hash = Request::analyze('h'); $confirm = Request::analyze('chkConfirm', false, false, true); if ($confirm === true && $action === 'upgrade' && $hash === Config::getConfig()->getUpgradeKey() ) { $this->upgrade($appVersion, 'app'); } else { $controller = new MainController(); $controller->getUpgrade($appVersion); } return false; } /** * Actualizar * * @param int $version * @param int $type * @return bool */ private function upgrade($version, $type) { try { Upgrade::doUpgrade($version); $Config = Config::getConfig(); $Config->setMaintenance(false); $Config->setUpgradeKey(''); if ($type === 'app') { $Config->setConfigVersion(implode('', Util::getVersion(true))); } Config::saveConfig($Config); Config::loadConfig(true); return true; } catch (\Exception $e) { Init::initError($e->getMessage(), $e->getCode()); } return false; } }