]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - application/front/ShaarliMiddleware.php
Multiple small fixes
[github/shaarli/Shaarli.git] / application / front / ShaarliMiddleware.php
index baea6ef28396c7c517af1a8c4585c912538003c1..fd978e997eea34b1a4d23b6452450bfff19fe8e4 100644 (file)
@@ -43,6 +43,12 @@ class ShaarliMiddleware
         $this->container->basePath = rtrim($request->getUri()->getBasePath(), '/');
 
         try {
+            if (!is_file($this->container->conf->getConfigFileExt())
+                && !in_array($next->getName(), ['displayInstall', 'saveInstall'], true)
+            ) {
+                return $response->withRedirect($this->container->basePath . '/install');
+            }
+
             $this->runUpdates();
             $this->checkOpenShaarli($request, $response, $next);
 
@@ -50,13 +56,15 @@ class ShaarliMiddleware
         } catch (ShaarliFrontException $e) {
             // Possible functional error
             $this->container->pageBuilder->reset();
-            $this->container->pageBuilder->assign('message', $e->getMessage());
+            $this->container->pageBuilder->assign('message', nl2br($e->getMessage()));
 
             $response = $response->withStatus($e->getCode());
 
             return $response->write($this->container->pageBuilder->render('error'));
         } catch (UnauthorizedException $e) {
-            return $response->withRedirect($this->container->basePath . '/login');
+            $returnUrl = urlencode($this->container->environment['REQUEST_URI']);
+
+            return $response->withRedirect($this->container->basePath . '/login?returnurl=' . $returnUrl);
         } catch (\Throwable $e) {
             // Unknown error encountered
             $this->container->pageBuilder->reset();