PermissionGate.php 548 B

123456789101112131415161718192021222324
  1. <?php
  2. namespace Modules\Permissions\Middlewares;
  3. use Illuminate\Http\Request;
  4. use Modules\Permissions\Exceptions\PermissionForbidden;
  5. use Modules\User\Models\User;
  6. class PermissionGate
  7. {
  8. public function handle(Request $request, \Closure $next)
  9. {
  10. if ($request->isMethod('get')) {
  11. return $next($request);
  12. }
  13. /* @var User $user */
  14. $user = $request->user(getGuardName());
  15. if (! $user->can()) {
  16. throw new PermissionForbidden();
  17. }
  18. return $next($request);
  19. }
  20. }