EnsureUserHasRole.php 605 B

123456789101112131415161718192021222324252627
  1. <?php
  2. namespace App\Http\Middleware;
  3. use App\Models\Role;
  4. use Closure;
  5. use Illuminate\Http\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. class EnsureUserHasRole
  8. {
  9. /**
  10. * Handle an incoming request.
  11. *
  12. * @param Request $request
  13. * @param Closure $next
  14. * @param mixed ...$roles
  15. * @return Response
  16. */
  17. public function handle(Request $request, Closure $next, ... $roles): Response
  18. {
  19. if (count(array_intersect($roles, Role::effectiveRoles($request->user()->role))) > 0) {
  20. return $next($request);
  21. }
  22. abort(403);
  23. }
  24. }