From d98d898ca91a23d32894279088f4955992201d4c Mon Sep 17 00:00:00 2001 From: Jack Anderson Date: Fri, 12 Jan 2024 09:47:47 +0000 Subject: [PATCH] Add Check Route Access to Install Handler --- .../Install/LegacyHandler/InstallHandler.php | 48 +++++++++++++++++-- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/core/backend/Install/LegacyHandler/InstallHandler.php b/core/backend/Install/LegacyHandler/InstallHandler.php index 25857d5d8..d1c3ce717 100644 --- a/core/backend/Install/LegacyHandler/InstallHandler.php +++ b/core/backend/Install/LegacyHandler/InstallHandler.php @@ -32,6 +32,7 @@ use App\Engine\LegacyHandler\LegacyScopeState; use App\Engine\Model\Feedback; use App\Install\Service\Installation\InstallStatus; use App\Install\Service\InstallationUtilsTrait; +use App\Install\Service\InstallPreChecks; use PDO; use PDOException; use Psr\Log\LoggerInterface; @@ -78,13 +79,13 @@ class InstallHandler extends LegacyHandler * @param LoggerInterface $logger */ public function __construct( - string $projectDir, - string $legacyDir, - string $legacySessionName, - string $defaultSessionName, + string $projectDir, + string $legacyDir, + string $legacySessionName, + string $defaultSessionName, LegacyScopeState $legacyScopeState, SessionInterface $session, - LoggerInterface $logger + LoggerInterface $logger ) { parent::__construct( @@ -202,6 +203,43 @@ class InstallHandler extends LegacyHandler return $feedback; } + public function runCheckRouteAccess(array $inputArray): FeedBack + { + $results = []; + $url = $inputArray['site_host']; + + require_once "core/backend/Install/Service/InstallPreChecks.php"; + $installChecks = new InstallPreChecks($this->logger); + $results[] = $installChecks->checkMainPage($url); + $results[] = $installChecks->checkGraphQlAPI($url); + $modStrings = $installChecks->getLanguageStrings(); + + $feedback = new Feedback(); + $feedback->setSuccess(true); + $warnings = []; + + foreach ($results as $result) { + if (is_array($result['errors'])) { + foreach ($result['errors'] as $error) { + if (in_array($error, $modStrings)) { + $warnings[] = "Check Failed:" . $error . " Please refer to the logs/install.log"; + } + } + continue; + } + + if (!empty($result['errors'])) { + $warnings[] = $result['errors']; + } + } + + if (isset($warnings)){ + $feedback->setWarnings($warnings); + } + + return $feedback; + } + /** * @param array $inputArray * @return bool