From d7d69b2be88585a3dd7eb14d4da0abfb89fbbf2d Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Tue, 15 Jan 2019 12:31:03 +0200 Subject: [PATCH] Added support for storing form state by user or session --- .../src/Grav/Framework/Form/Traits/FormTrait.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/system/src/Grav/Framework/Form/Traits/FormTrait.php b/system/src/Grav/Framework/Form/Traits/FormTrait.php index beb1b89c9..2e9b984f7 100644 --- a/system/src/Grav/Framework/Form/Traits/FormTrait.php +++ b/system/src/Grav/Framework/Form/Traits/FormTrait.php @@ -269,10 +269,20 @@ trait FormTrait if (null === $this->flash) { $grav = Grav::instance(); - /** @var Session $session */ - $session = $grav['session']; + $rememberState = $this->getBlueprint()->get('form/remember_state'); - $this->flash = new FormFlash($session->getId(), $this->getUniqueId(), $this->getName()); + if ($rememberState === 'user') { + $user = $grav['user']; + $id = $user->username; + } + + if (null === $id) { + /** @var Session $session */ + $session = $grav['session']; + $id = $session->getId(); + } + + $this->flash = new FormFlash($id, $this->getUniqueId(), $this->getName()); $this->flash->setUrl($grav['uri']->url)->setUser($grav['user']); }