<?php

/*
 * EnsureUserIsAdmin — middleware защиты маршрутов только для администраторов.
 *
 * Создан: 2026-05-06
 * Регистрация: bootstrap/app.php → withMiddleware() → alias 'admin'
 * Используется: в routes/web.php для группы Route::middleware('admin')->group(...)
 *
 * Проверяет: авторизован ли пользователь И имеет ли флаг is_admin = true.
 * Если нет — редиректит на страницу входа /admin/login.
 */

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;

class EnsureUserIsAdmin
{
    // Проверяет авторизацию и наличие роли (или legacy is_admin); отказ → форма входа
    public function handle(Request $request, Closure $next): Response
    {
        if (! Auth::check() || ! Auth::user()->isAdminUser()) {
            return redirect()->route('admin.login');
        }

        return $next($request);
    }
}
