/** * @param null $type * * @return mixed */ public function __invoke($type = null) { if (!$type) { return $this->session->getFlashBag()->all(); } return $this->session->getFlashBag()->get($type); }
/** * @param Request $request * @param callable $next * * @return mixed */ public function handle(Request $request, callable $next) { if (!$this->session->isStarted()) { $this->session->start(); } else { $this->session->regenerate(); } return $next($request); }
/** * @return string */ public function __invoke() { $token = $this->session->get('csrf', null); $expiry = $this->session->get('csrfExpiry', 0); if ($expiry < time() || !$token) { $token = base64_encode(openssl_random_pseudo_bytes(32)); $this->session->set('csrf', $token); $this->session->set('csrfExpiry', time() + 3600); } return $token; }
/** * @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); } }
/** * @return mixed */ public function __invoke() { return $this->session->getErrorsBag()->has(); }
/** * @param $identity * * @return $this */ public function authenticate($identity) { $this->session->set(get_class($this), $identity); return $this; }
/** * @param $message * @param string $type * * @return $this */ public function flash($message, $type = 'error') { $this->session->getFlashBag()->add($type, $message); return $this; }
/** * @return array */ public function __invoke() { $errors = $this->session->getErrorsBag()->get(); return $errors; }