示例#1
0
 /**
  * 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);
 }