Initial commit

This commit is contained in:
root
2026-05-09 17:28:23 +02:00
commit 9d73f82529
5575 changed files with 281989 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
use Throwable;
class MaintenanceMiddleware
{
public function handle(Request $request, Closure $next): Response
{
$isPostRequest = $request->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;
}
}
}