diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fbd83db1..a12d604bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ * Rework logic to pull out excluded files from pipeline more reliably [#2445](https://github.com/getgrav/grav/issues/2445) * Better logic in `Utils::normalizePath` to handle externals properly [#2216](https://github.com/getgrav/grav/issues/2216) * Fix to force all `Page::taxonomy` to be treated as strings [#2446](https://github.com/getgrav/grav/issues/2446) + * Fix issue with `Grav['user']` not being available [form#332](https://github.com/getgrav/grav-plugin-form/issues/332) # v1.6.3 ## 04/12/2019 diff --git a/system/src/Grav/Framework/Form/Traits/FormTrait.php b/system/src/Grav/Framework/Form/Traits/FormTrait.php index 23f941093..d46517742 100644 --- a/system/src/Grav/Framework/Form/Traits/FormTrait.php +++ b/system/src/Grav/Framework/Form/Traits/FormTrait.php @@ -16,7 +16,6 @@ use Grav\Common\Form\FormFlash; use Grav\Common\Grav; use Grav\Common\Utils; use Grav\Framework\Form\Interfaces\FormInterface; -use Grav\Framework\Session\Session; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\UploadedFileInterface; @@ -309,24 +308,30 @@ trait FormTrait public function getFlash(): FormFlash { if (null === $this->flash) { + /** @var Grav $grav */ $grav = Grav::instance(); - $user = $grav['user']; $id = null; - $rememberState = $this->getBlueprint()->get('form/remember_state'); - if ($rememberState === 'user') { - $id = $user->username; + $user = $grav['user'] ?? null; + if (isset($user)) { + $rememberState = $this->getBlueprint()->get('form/remember_state'); + if ($rememberState === 'user') { + $id = $user->username; + } } - // By default store flash by the session id. - if (null === $id) { - /** @var Session $session */ - $session = $grav['session']; - $id = $session->getId(); - } + // Session Required for flash form + $session = $grav['session'] ?? null; + if (isset($session)) { + // By default store flash by the session id. + if (null === $id) { + $id = $session->getId(); + } - $this->flash = new FormFlash($id, $this->getUniqueId(), $this->getName()); - $this->flash->setUrl($grav['uri']->url)->setUser($user); + + $this->flash = new FormFlash($id, $this->getUniqueId(), $this->getName()); + $this->flash->setUrl($grav['uri']->url)->setUser($user); + } } return $this->flash;