diff --git a/app/modules/api/Init.php b/app/modules/api/Init.php index eeb8c3fc..1f771cd7 100644 --- a/app/modules/api/Init.php +++ b/app/modules/api/Init.php @@ -24,8 +24,6 @@ namespace SP\Modules\Api; -use Defuse\Crypto\Exception\EnvironmentIsBrokenException; -use JsonException; use Klein\Klein; use SP\Core\Application; use SP\Core\Context\ContextException; @@ -33,15 +31,11 @@ use SP\Core\HttpModuleBase; use SP\Core\Language; use SP\Core\ProvidersHelper; use SP\Domain\Common\Providers\Http; -use SP\Domain\Core\Exceptions\ConfigException; use SP\Domain\Core\Exceptions\InitializationException; +use SP\Domain\Core\Exceptions\SPException; use SP\Domain\Core\LanguageInterface; use SP\Domain\Http\Ports\RequestService; -use SP\Domain\Upgrade\Services\UpgradeAppService; -use SP\Domain\Upgrade\Services\UpgradeDatabaseService; -use SP\Domain\Upgrade\Services\UpgradeUtil; use SP\Infrastructure\Database\DatabaseUtil; -use SP\Infrastructure\File\FileException; use function SP\logger; @@ -73,12 +67,10 @@ final class Init extends HttpModuleBase } /** - * @throws EnvironmentIsBrokenException - * @throws JsonException + * @param string $controller * @throws ContextException * @throws InitializationException - * @throws FileException - * @throws ConfigException + * @throws SPException */ public function initialize(string $controller): void { @@ -102,7 +94,9 @@ final class Init extends HttpModuleBase } // Checks if upgrade is needed - $this->checkUpgrade(); + if ($this->checkUpgradeNeeded()) { + throw new InitializationException('Upgrade needed'); + } // Checks if the database is set up if (!$this->databaseUtil->checkDatabaseConnection()) { @@ -129,29 +123,4 @@ final class Init extends HttpModuleBase throw new InitializationException('Not installed'); } } - - /** - * Comprobar si es necesario actualizar componentes - * - * @throws EnvironmentIsBrokenException - * @throws FileException - * @throws InitializationException - */ - private function checkUpgrade(): void - { - if (IS_TESTING) { - return; - } - - UpgradeUtil::fixAppUpgrade($this->configData, $this->config); - - if ($this->configData->getUpgradeKey() - || (UpgradeDatabaseService::needsUpgrade($this->configData->getDatabaseVersion()) - || UpgradeAppService::needsUpgrade($this->configData->getAppVersion())) - ) { - $this->config->generateUpgradeKey(); - - throw new InitializationException(__u('Updating needed')); - } - } } diff --git a/app/modules/web/Init.php b/app/modules/web/Init.php index 35bc9af3..603fec7a 100644 --- a/app/modules/web/Init.php +++ b/app/modules/web/Init.php @@ -57,7 +57,6 @@ use SP\Domain\Http\Providers\Uri; use SP\Domain\ItemPreset\Models\SessionTimeout; use SP\Domain\ItemPreset\Ports\ItemPresetInterface; use SP\Domain\ItemPreset\Services\ItemPreset; -use SP\Domain\Upgrade\Services\UpgradeUtil; use SP\Domain\User\Ports\UserProfileService; use SP\Domain\User\Services\UserProfile; use SP\Infrastructure\Common\Repositories\NoSuchItemException; @@ -246,14 +245,7 @@ final class Init extends HttpModuleBase throw new InitializationException('Maintenance mode'); } - // Checks if upgrade is needed - if ($this->checkUpgrade()) { - logger('Upgrade needed', 'ERROR'); - - $this->config->generateUpgradeKey(); - - $this->router->response()->redirect($this->getUriFor(self::ROUTE_UPGRADE))->send(); - + if ($this->checkUpgradeNeeded()) { throw new InitializationException('Upgrade needed'); } @@ -338,20 +330,6 @@ final class Init extends HttpModuleBase return (new Uri($this->uriContext->getWebRoot()))->addParam('r', $route)->getUri(); } - /** - * Comprobar si es necesario actualizar componentes - * - * @throws FileException - */ - private function checkUpgrade(): bool - { - UpgradeUtil::fixAppUpgrade($this->configData, $this->config); - - return $this->configData->getUpgradeKey() - || (UpgradeDatabaseService::needsUpgrade($this->configData->getDatabaseVersion()) - || UpgradeAppService::needsUpgrade($this->configData->getAppVersion())); - } - /** * Inicializar la sesión de usuario * diff --git a/lib/SP/Core/Bootstrap/BootstrapBase.php b/lib/SP/Core/Bootstrap/BootstrapBase.php index bbd57070..259fd4d7 100644 --- a/lib/SP/Core/Bootstrap/BootstrapBase.php +++ b/lib/SP/Core/Bootstrap/BootstrapBase.php @@ -1,4 +1,5 @@ upgradeConfigChecker->checkConfigVersion(); + UpgradeConfig::needsUpgrade($this->configData->getConfigVersion()); ConfigUtil::checkConfigDir(); } diff --git a/lib/SP/Core/Bootstrap/UpgradeConfigChecker.php b/lib/SP/Core/Bootstrap/UpgradeConfigChecker.php deleted file mode 100644 index 6052168e..00000000 --- a/lib/SP/Core/Bootstrap/UpgradeConfigChecker.php +++ /dev/null @@ -1,56 +0,0 @@ -. - */ - -namespace SP\Core\Bootstrap; - -use SP\Domain\Config\Ports\ConfigDataInterface; -use SP\Domain\Config\Ports\UpgradeConfigService; -use SP\Domain\Config\Services\UpgradeConfig; -use SP\Domain\Upgrade\Services\UpgradeUtil; - -/** - * Upgrade the config whenever is needed - */ -readonly class UpgradeConfigChecker -{ - - public function __construct( - private UpgradeConfigService $upgradeConfigService, - private ConfigDataInterface $configData - ) { - } - - /** - * Comprobar la versión de configuración y actualizarla - */ - public function checkConfigVersion(): void - { - $configVersion = UpgradeUtil::fixVersionNumber($this->configData->getConfigVersion()); - - if ($this->configData->isInstalled() && UpgradeConfig::needsUpgrade($configVersion)) { - $this->upgradeConfigService->upgrade($configVersion, $this->configData); - } - } -} diff --git a/lib/SP/Core/ModuleBase.php b/lib/SP/Core/ModuleBase.php index 0097455c..27c99c47 100644 --- a/lib/SP/Core/ModuleBase.php +++ b/lib/SP/Core/ModuleBase.php @@ -1,4 +1,5 @@ eventDispatcher->attach($this->providersHelper->getAclHandler()); $this->eventDispatcher->attach($this->providersHelper->getNotificationHandler()); } + + protected function checkUpgradeNeeded(): bool + { + return false; + } } diff --git a/lib/SP/Domain/Config/Ports/UpgradeConfigService.php b/lib/SP/Domain/Upgrade/Ports/UpgradeConfigService.php similarity index 92% rename from lib/SP/Domain/Config/Ports/UpgradeConfigService.php rename to lib/SP/Domain/Upgrade/Ports/UpgradeConfigService.php index b2cfb7e5..b27cc649 100644 --- a/lib/SP/Domain/Config/Ports/UpgradeConfigService.php +++ b/lib/SP/Domain/Upgrade/Ports/UpgradeConfigService.php @@ -1,5 +1,4 @@ . */ -namespace SP\Domain\Config\Ports; +declare(strict_types=1); -use SP\Domain\Upgrade\Ports\UpgradeService; +namespace SP\Domain\Upgrade\Ports; /** * Interface UpgradeConfigService diff --git a/lib/SP/Domain/Config/Services/UpgradeConfig.php b/lib/SP/Domain/Upgrade/Services/UpgradeConfig.php similarity index 92% rename from lib/SP/Domain/Config/Services/UpgradeConfig.php rename to lib/SP/Domain/Upgrade/Services/UpgradeConfig.php index 5c1bed55..1ecb955f 100644 --- a/lib/SP/Domain/Config/Services/UpgradeConfig.php +++ b/lib/SP/Domain/Upgrade/Services/UpgradeConfig.php @@ -1,5 +1,4 @@ . */ -namespace SP\Domain\Config\Services; +declare(strict_types=1); + +namespace SP\Domain\Upgrade\Services; use SP\Core\Application; -use SP\Domain\Config\Ports\UpgradeConfigService; use SP\Domain\Log\Ports\FileHandlerProvider; -use SP\Domain\Upgrade\Services\UpgradeBase; +use SP\Domain\Upgrade\Ports\UpgradeConfigService; /** * Class UpgradeConfig diff --git a/lib/SP/Domain/Upgrade/Services/UpgradeUtil.php b/lib/SP/Domain/Upgrade/Services/UpgradeUtil.php deleted file mode 100644 index e2dd68e2..00000000 --- a/lib/SP/Domain/Upgrade/Services/UpgradeUtil.php +++ /dev/null @@ -1,67 +0,0 @@ -. - */ - -namespace SP\Domain\Upgrade\Services; - -use SP\Domain\Common\Providers\Version; -use SP\Domain\Config\Ports\ConfigDataInterface; -use SP\Domain\Config\Ports\ConfigFileService; -use SP\Infrastructure\File\FileException; - -/** - * Class UpgradeUtil - */ -final class UpgradeUtil -{ - /** - * Normalizar un número de versión - */ - public static function fixVersionNumber(string $version): string - { - if (!str_contains($version, '.')) { - if (strlen($version) === 10) { - return substr($version, 0, 2) . '0.' . substr($version, 2); - } - - return substr($version, 0, 3) . '.' . substr($version, 3); - } - - return $version; - } - - /** - * @throws FileException - */ - public static function fixAppUpgrade(ConfigDataInterface $configData, ConfigFileService $config): void - { - // Fixes bug in 3.0.X version where some updates weren't applied - // when upgrading from v2 - // $dbVersion is always '' when upgrading from v2 - if (!empty($configData->getDatabaseVersion()) && empty($configData->getAppVersion())) { - $configData->setAppVersion(Version::getVersionStringNormalized()); - $config->save($configData, false); - } - } -} diff --git a/tests/SP/Domain/Config/Services/UpgradeConfigTest.php b/tests/SP/Domain/Config/Services/UpgradeConfigTest.php index 8dcfa7f1..44136150 100644 --- a/tests/SP/Domain/Config/Services/UpgradeConfigTest.php +++ b/tests/SP/Domain/Config/Services/UpgradeConfigTest.php @@ -32,8 +32,8 @@ use PHPUnit\Framework\MockObject\MockObject; use SP\Core\Application; use SP\Domain\Config\Ports\ConfigDataInterface; use SP\Domain\Config\Ports\ConfigFileService; -use SP\Domain\Config\Services\UpgradeConfig; use SP\Domain\Log\Ports\FileHandlerProvider; +use SP\Domain\Upgrade\Services\UpgradeConfig; use SP\Domain\Upgrade\Services\UpgradeException; use SP\Infrastructure\File\FileException; use SP\Tests\UnitaryTestCase;