method() === 'POST'; $isMaintenanceRequest = $request->is('maintenance'); $maintenanceEnabled = $this->getMaintenanceEnabled(); $isPreview = $request->query('preview') === '1'; $minRank = $this->getMinMaintenanceRank(); $fortify2faRoutes = [ 'two-factor.login', 'two-factor.confirm', ]; if ($maintenanceEnabled && $isPostRequest && ! Auth::check()) { return $next($request); } $route = $request->route(); $routeName = $route?->getName(); $isFortify2faRoute = in_array($routeName, $fortify2faRoutes, true); if ($maintenanceEnabled && $isFortify2faRoute) { return $next($request); } $isStaff = Auth::check() && Auth::user()->rank >= $minRank; if ($isStaff) { if ($isMaintenanceRequest && ! $isPreview) { return to_route('me.show'); } return $next($request); } if ($maintenanceEnabled && ! $isMaintenanceRequest && ! $isPostRequest) { return to_route('maintenance.show'); } if (! $maintenanceEnabled && $isMaintenanceRequest && ! $isPostRequest && ! $isPreview) { return to_route('welcome'); } return $next($request); } private function getMaintenanceEnabled(): bool { try { return (bool) setting('maintenance_enabled'); } catch (Throwable) { return false; } } private function getMinMaintenanceRank(): int { try { return (int) setting('min_maintenance_login_rank', 1); } catch (Throwable) { return 1; } } }