]> git.agnieray.net Git - galette.git/commitdiff
Update and maintenance pages were in error
authorJohan Cwiklinski <johan@x-tnd.be>
Sat, 10 Feb 2024 10:07:34 +0000 (11:07 +0100)
committerJohan Cwiklinski <johan@x-tnd.be>
Sat, 10 Feb 2024 16:42:18 +0000 (17:42 +0100)
fixes #1782

galette/includes/main.inc.php
galette/includes/routes/main.routes.php
galette/lib/Galette/Middleware/UpdateAndMaintenance.php

index 0609aca80fd32614fa7ac91d01f5d4b8b76dd508..c48b63d238f4fb47af8ce1c4723b6a1e2c975630 100644 (file)
@@ -117,10 +117,18 @@ $app->add($session);
 require GALETTE_ROOT . '/includes/dependencies.php';
 $app->add($app->getContainer()->get('csrf'));
 
+/**
+ * Authentication middleware
+ */
+$authenticate = new Authenticate($container);
+
+require_once GALETTE_ROOT . 'includes/routes/main.routes.php';
+
 if ($needs_update) {
     $app->add(
         new UpdateAndMaintenance(
             $container->get('i18n'),
+            $container->get(RouteParser::class),
             UpdateAndMaintenance::NEED_UPDATE
         )
     );
@@ -129,11 +137,6 @@ if ($needs_update) {
     die();
 }
 
-/**
- * Authentication middleware
- */
-$authenticate = new Authenticate($container);
-
 //FIXME: remove in 1.1.0; routes/groups should call middleware directly
 $showPublicPages = new \Galette\Middleware\PublicPages($container);
 
@@ -141,7 +144,8 @@ $showPublicPages = new \Galette\Middleware\PublicPages($container);
 if (Galette::MODE_MAINT === GALETTE_MODE && !$container->get('login')->isSuperAdmin()) {
     $app->add(
         new UpdateAndMaintenance(
-            $i18n,
+            $container->get('i18n'),
+            $container->get(RouteParser::class),
             UpdateAndMaintenance::MAINTENANCE
         )
     );
@@ -157,7 +161,6 @@ $app->add(Language::class);
 //Telemetry update middleware
 $app->add(Telemetry::class);
 
-require_once GALETTE_ROOT . 'includes/routes/main.routes.php';
 require_once GALETTE_ROOT . 'includes/routes/authentication.routes.php';
 require_once GALETTE_ROOT . 'includes/routes/management.routes.php';
 require_once GALETTE_ROOT . 'includes/routes/members.routes.php';
index 24a09ff77df2b9b819956f157416a968868e148a..cbd41cf15abd5330a01abba8eedd6718c21226ce 100644 (file)
@@ -69,7 +69,8 @@ $app->get(
 //system information - keep old route with typo ('s' on 'information') for now (0.9.4)
 $app->get(
     '/system-informations',
-    function ($request, $response) use ($routeparser) {
+    function ($request, $response) use ($container) {
+        $routeparser = $container->get(\Slim\Routing\RouteParser::class);
         return $response
             ->withStatus(302)
             ->withHeader('Location', $routeparser->urlFor('sysinfos'));
index 8f3f60f6cc3eedaba5a32587b5fa598b58a33912..19343d9975ad33cafeee7e722e960d9c0a2cb0c6 100644 (file)
@@ -43,7 +43,7 @@ use Galette\Core\I18n;
 use Psr\Http\Message\ServerRequestInterface as Request;
 use Psr\Http\Message\ResponseInterface as Response;
 use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
-use Slim\Routing\RouteContext;
+use Slim\Routing\RouteParser;
 
 /**
  * Galette's Slim middleware for Update and Maintenance
@@ -74,15 +74,22 @@ class UpdateAndMaintenance
      */
     protected $i18n;
 
+    /**
+     * @var RouteParser
+     */
+    protected RouteParser $routeParser;
+
     /**
      * Constructor
      *
-     * @param I18n         $i18n     I18n instance
-     * @param callable|int $callback Callable or local constant
+     * @param I18n         $i18n        I18n instance
+     * @param RouteParser  $routeParser Route parser
+     * @param callable|int $callback    Callable or local constant
      */
-    public function __construct(I18n $i18n, $callback = self::MAINTENANCE)
+    public function __construct(I18n $i18n, RouteParser $routeParser, callable|int $callback = self::MAINTENANCE)
     {
         $this->i18n = $i18n;
+        $this->routeParser = $routeParser;
 
         if ($callback === self::MAINTENANCE) {
             $this->callback = array($this, 'maintenancePage');
@@ -118,16 +125,14 @@ class UpdateAndMaintenance
     /**
      * Renders the page
      *
-     * @param \Psr\Http\Message\ServerRequestInterface $request  PSR7 request
-     * @param string                                   $contents HTML page contents
+     * @param Request $request  PSR7 request
+     * @param string  $contents HTML page contents
      *
      * @return string
      */
     private function renderPage(Request $request, $contents)
     {
-        $routeContext = RouteContext::fromRequest($request);
-        $routeParser = $routeContext->getRouteParser();
-        $path = $routeParser->urlFor('slash');
+        $path = $this->routeParser->urlFor('slash');
 
         //add ending / if missing
         if (
@@ -145,7 +150,6 @@ class UpdateAndMaintenance
     <head>
         <title>" . _T("Galette needs update!") . "</title>
         <meta charset=\"UTF-8\"/>
-        <link rel=\"stylesheet\" type=\"text/css\" href=\"" . $theme_path . "../../assets/css/galette-main.bundle.min.css\"/>
         <link rel=\"stylesheet\" type=\"text/css\" href=\"" . $theme_path . "ui/semantic.min.css\"/>
         <link rel=\"shortcut icon\" href=\"" . $theme_path . "images/favicon.png\"/>
     </head>
@@ -168,7 +172,7 @@ class UpdateAndMaintenance
     /**
      * Displays maintenance page
      *
-     * @param \Psr\Http\Message\ServerRequestInterface $request PSR7 request
+     * @param Request $request PSR7 request
      *
      * @return string
      */
@@ -182,7 +186,7 @@ class UpdateAndMaintenance
     /**
      * Displays needs update page
      *
-     * @param \Psr\Http\Message\ServerRequestInterface $request PSR7 request
+     * @param Request $request PSR7 request
      *
      * @return string
      */