diff --git a/.env b/.env index 73b554e..b00c020 100644 --- a/.env +++ b/.env @@ -17,6 +17,9 @@ # Set to 1 on production to disable watermarks and hints on webpages IS_PRODUCTIVE=0 +# Set to 1 to enable maintenance mode, where no frontend is available (but backend login is still possible) +MAINTENANCE_MODE=0 + SUPPORT_EMAIL=support@invalid.invalid HHV_EMAIL=hhv@invalid.invalid # The email where the forms get sent to, when two stura financers confirmed a payment order diff --git a/src/EventListener/MaintenanceModeListener.php b/src/EventListener/MaintenanceModeListener.php new file mode 100644 index 0000000..802c980 --- /dev/null +++ b/src/EventListener/MaintenanceModeListener.php @@ -0,0 +1,52 @@ +enabled) { + return; + } + + //Exclude certain paths from maintenance mode + $path = $event->getRequest()->getPathInfo(); + foreach (self::EXLUDED_PATHS as $excludedPath) { + if (str_starts_with($path, $excludedPath)) { + return; + } + } + + $response = new Response($this->twig->render('maintenance.html.twig'), Response::HTTP_SERVICE_UNAVAILABLE); + + $event->setResponse($response); + } +} \ No newline at end of file diff --git a/templates/maintenance.html.twig b/templates/maintenance.html.twig new file mode 100644 index 0000000..ba2ece2 --- /dev/null +++ b/templates/maintenance.html.twig @@ -0,0 +1,30 @@ + + +
+ + + + + + +Wir führen gerade Wartungsarbeiten durch. Versuche es bitte später erneut!
+— Admin
+