diff --git a/EditInPlace/Activator.php b/EditInPlace/Activator.php index 3184f6c..8289c59 100644 --- a/EditInPlace/Activator.php +++ b/EditInPlace/Activator.php @@ -50,10 +50,10 @@ public function setSession(Session $session): void /** * Get session based on availability. */ - private function getSession(): Session + private function getSession(): ?Session { $session = $this->session; - if (null === $session) { + if (null === $session && $this->requestStack->getCurrentRequest()->hasSession()) { $session = $this->requestStack->getSession(); } @@ -65,7 +65,9 @@ private function getSession(): Session */ public function activate(): void { - $this->getSession()->set(self::KEY, true); + if (null !== $this->getSession()) { + $this->getSession()->set(self::KEY, true); + } } /** @@ -73,7 +75,9 @@ public function activate(): void */ public function deactivate(): void { - $this->getSession()->remove(self::KEY); + if (null !== $this->getSession()) { + $this->getSession()->remove(self::KEY); + } } /** @@ -81,7 +85,7 @@ public function deactivate(): void */ public function checkRequest(Request $request = null): bool { - if (!$this->getSession()->has(self::KEY)) { + if (null === $this->getSession() || !$this->getSession()->has(self::KEY)) { return false; }