/**
  * @param ArhitectRequest $request
  * @param callable        $next
  *
  * @return mixed
  */
 public function handle(ArhitectRequest $request, callable $next)
 {
     switch ($request->getMethod()) {
         case Request::METHOD_POST:
         case Request::METHOD_PUT:
         case Request::METHOD_DELETE:
             $crossSiteForgeryToken = $request->any('csrf');
             if (!$crossSiteForgeryToken || $crossSiteForgeryToken != $this->session->get('csrf', NULL)) {
                 $this->session->getErrorsBag()->add('csrf', $this->translator->translate('The request has expired. Please submit the form again.'));
             }
             break;
     }
     return $next($request);
 }
 /**
  * @throws ValidationError
  *
  * @return null
  */
 public function isValid()
 {
     $rules = [];
     $isValid = true;
     $messages = [];
     foreach ($this->rules() as $fieldName => $spec) {
         $value = $this->post($fieldName);
         foreach ($spec as $specRules => $message) {
             if (!isset($rules[$fieldName])) {
                 $rules[$fieldName] = Rule::$specRules();
             } else {
                 $rules[$fieldName] = $rules[$fieldName]->{$specRules}();
             }
             if (!$rules[$fieldName]->validate($value)) {
                 $isValid = false;
                 $messages[$fieldName] = $message;
                 break;
             }
             if (!in_array($fieldName, $this->validValues)) {
                 $this->validValues[] = $fieldName;
             }
         }
     }
     if (!$isValid || $this->session->getErrorsBag()->has()) {
         foreach ($messages as $name => $errors) {
             $this->session->getErrorsBag()->add($name, $errors);
         }
         throw new ValidationError($messages);
     }
 }
Example #3
0
 /**
  * @return mixed
  */
 public function __invoke()
 {
     return $this->session->getErrorsBag()->has();
 }
Example #4
0
 /**
  * @return array
  */
 public function __invoke()
 {
     $errors = $this->session->getErrorsBag()->get();
     return $errors;
 }