/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $route['route_method'] = $this->router->current()->methods()[0]; $route['route_name'] = '/' . $this->router->current()->uri(); $isAllowGuest = PermissionRouteModel::isAllowGuest($route); if (!$isAllowGuest) { if (($user = $this->user($request)) === 401) { return response()->json(null, 401); } $isAllPermission = PermissionRouteModel::isAllPermission($user); if (!$isAllPermission) { if (!PermissionRouteModel::hasPermission($user, $route)) { return response()->json(null, 403); } } } return $next($request); }