CheckPermission.php 752 B

1234567891011121314151617181920212223242526272829
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\Auth;
  6. use Illuminate\Support\Facades\Route;
  7. use Spatie\Permission\Exceptions\UnauthorizedException;
  8. use Symfony\Component\HttpFoundation\Response;
  9. class CheckPermission
  10. {
  11. /**
  12. * Handle an incoming request.
  13. *
  14. * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
  15. */
  16. public function handle(Request $request, Closure $next): Response
  17. {
  18. $permission = Route::currentRouteName();
  19. if (Auth::user()->hasPermissionTo($permission)) {
  20. return $next($request);
  21. }
  22. throw UnauthorizedException::forPermissions([$permission]);
  23. }
  24. }