diff --git a/app/Http/Middleware/CheckPrivateModeMiddleware.php b/app/Http/Middleware/CheckPrivateModeMiddleware.php
index 8d3bce4ee1c02b5ee4a24ea371c830217dd537ba..7cf814038d6d7cc8d3516ce8e2c0f69652ecd3b1 100644
--- a/app/Http/Middleware/CheckPrivateModeMiddleware.php
+++ b/app/Http/Middleware/CheckPrivateModeMiddleware.php
@@ -14,9 +14,15 @@ public function handle(Request $request, Closure $next)
         $userSecretInput = $request->input('secret');
         $secretIsUsable = ! empty($privateModeSecret) && $privateModeSecret === $userSecretInput;
 
-        if ($privateModeEnabled && ! $secretIsUsable) {
-            return redirect()->route('maintenance');
-        } elseif (! $privateModeEnabled && $request->is('maintenance')) {
+        if ($privateModeEnabled) {
+            if (! $secretIsUsable && ! auth()->check()) {
+                if (! $request->is('maintenance')) {
+                    return redirect()->route('maintenance');
+                }
+            }
+        }
+
+        if (! $privateModeEnabled && $request->is('maintenance') && ! auth()->check()) {
             return redirect()->route('index');
         }