EnsureUserIsAdmin.php 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. /*
  3. * EnsureUserIsAdmin — middleware защиты маршрутов только для администраторов.
  4. *
  5. * Создан: 2026-05-06
  6. * Регистрация: bootstrap/app.php → withMiddleware() → alias 'admin'
  7. * Используется: в routes/web.php для группы Route::middleware('admin')->group(...)
  8. *
  9. * Проверяет: авторизован ли пользователь И имеет ли флаг is_admin = true.
  10. * Если нет — редиректит на страницу входа /admin/login.
  11. */
  12. namespace App\Http\Middleware;
  13. use Closure;
  14. use Illuminate\Http\Request;
  15. use Illuminate\Support\Facades\Auth;
  16. use Symfony\Component\HttpFoundation\Response;
  17. class EnsureUserIsAdmin
  18. {
  19. // Проверяет авторизацию и наличие роли (или legacy is_admin); отказ → форма входа
  20. public function handle(Request $request, Closure $next): Response
  21. {
  22. if (! Auth::check() || ! Auth::user()->isAdminUser()) {
  23. return redirect()->route('admin.login');
  24. }
  25. return $next($request);
  26. }
  27. }