Example #1
0
 /**
  * @param \Illuminate\Http\Request $old
  *
  * @return static
  */
 public static function createFromExisting(IlluminateRequest $old)
 {
     $new = new static($old->query->all(), $old->request->all(), $old->attributes->all(), $old->cookies->all(), $old->files->all(), $old->server->all(), $old->content);
     if ($session = $old->getSession()) {
         $new->setSession($old->getSession());
     }
     $new->setRouteResolver($old->getRouteResolver());
     return $new;
 }
Example #2
0
 /**
  * Initialize the form request with data from the given request.
  *
  * @param  Request  $request
  * @return void
  */
 public function setRequest(Request $request)
 {
     $files = $request->files->all();
     $files = is_array($files) ? array_filter($files) : $files;
     $this->initialize($request->query->all(), $request->request->all(), $request->attributes->all(), $request->cookies->all(), $files, $request->server->all(), $request->getContent());
     if ($session = $request->getSession()) {
         $this->setSession($session);
     }
     $this->setUserResolver($request->getUserResolver());
     $this->setRouteResolver($request->getRouteResolver());
 }
Example #3
0
 public function decorate(Request $current)
 {
     $files = $current->files->all();
     $files = is_array($files) ? array_filter($files) : $files;
     $this->initialize($current->query->all(), $current->request->all(), $current->attributes->all(), $current->cookies->all(), $files, $current->server->all(), $current->getContent());
     if ($session = $current->getSession()) {
         $this->setSession($session);
     }
     $this->setUserResolver($current->getUserResolver());
     $this->setRouteResolver($current->getRouteResolver());
     $this->originalRequest = $current;
 }
Example #4
0
 /**
  * Instantiate the service with API version and URL
  * @param Request $request self-injected Request object
  */
 public function __construct(Request $request)
 {
     $routeResolver = $request->getRouteResolver();
     // Populating the service data's header with service route, version and URL
     if ($route = $routeResolver()) {
         $action = $route->getAction();
         $prefix = $action['prefix'];
         $version = substr($prefix, strlen($this->apiPrefix) + 1, strlen($prefix));
         $service = array('name' => $this->name, 'version' => $version, 'url' => \URL::to($route->getUri()));
     } else {
         // Default definition when calling the script from CLI
         $service = array('name' => $this->name, 'version' => 'undefined', 'url' => 'undefined');
     }
     parent::__construct($service);
 }
Example #5
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  \Closure $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     if ($this->guard->guest()) {
         if ($request->ajax() || $request->wantsJson()) {
             return response('Unauthorized.', 401);
         } else {
             return redirect()->guest(URL::route('backend.auth'));
         }
     }
     $user = $this->guard->user();
     if (!$user instanceof HasAccessEntity || count($user->getPermissions()) === 0) {
         throw new AccessDeniedHttpException();
     } else {
         $routeResolver = $request->getRouteResolver();
         /* @var Route $route */
         $route = $routeResolver();
         $action = $route->getAction();
         if (is_string($action['uses'])) {
             list($class, $method) = explode('@', $action['uses']);
             $reader = new AnnotationReader();
             $class = new ReflectionClass($class);
             $annotation = $reader->getClassAnnotation($class, PermissionAnnotation::class);
             if ($annotation instanceof PermissionAnnotation && !$user->hasAccess($annotation->permissions, $annotation->all)) {
                 if ($request->ajax()) {
                     return new JsonResponse([], Response::HTTP_FORBIDDEN);
                 } else {
                     return $this->forbiddenRequest();
                 }
             }
             if ($method = $class->getMethod($method)) {
                 $annotation = $reader->getMethodAnnotation($method, PermissionAnnotation::class);
                 if ($annotation instanceof PermissionAnnotation && !$user->hasAccess($annotation->permissions, $annotation->all)) {
                     if ($request->ajax()) {
                         return new JsonResponse([], Response::HTTP_FORBIDDEN);
                     } else {
                         return $this->forbiddenRequest();
                     }
                 }
             }
         }
     }
     return $next($request);
 }
Example #6
0
 /**
  * Get the route resolver callback.
  *
  * @return \Closure 
  * @static 
  */
 public static function getRouteResolver()
 {
     return \Illuminate\Http\Request::getRouteResolver();
 }