| 123456789101112131415161718192021222324252627282930313233 |
- <?php
- namespace App\Http\Middleware;
- use App\Models\Setting;
- use Closure;
- use Illuminate\Http\Request;
- use Symfony\Component\HttpFoundation\Response;
- /*
- * SiteMaintenanceMiddleware — показывает заглушку «Сайт на обслуживании»
- * всем гостям и пользователям с ролью ниже admin/superadmin,
- * если включена настройка site_maintenance = '1'.
- * Администраторы и супер-администраторы видят сайт в обычном режиме.
- */
- class SiteMaintenanceMiddleware
- {
- public function handle(Request $request, Closure $next): Response
- {
- if (Setting::get('site_maintenance') !== '1') {
- return $next($request);
- }
- $user = $request->user();
- // Пропускаем администраторов и супер-администраторов
- if ($user && in_array($user->role, ['admin', 'superadmin'], true)) {
- return $next($request);
- }
- return response()->view('errors.maintenance', [], 503);
- }
- }
|