From 98514a4e0037aa0879e45bbad660aeda8837c624 Mon Sep 17 00:00:00 2001 From: vincent-peugnet Date: Tue, 28 Apr 2020 14:20:10 +0200 Subject: add session as controller var --- app/class/Controller.php | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'app/class/Controller.php') diff --git a/app/class/Controller.php b/app/class/Controller.php index 7bfa3a2..56d4dfe 100644 --- a/app/class/Controller.php +++ b/app/class/Controller.php @@ -7,9 +7,13 @@ use DateTimeImmutable; use Exception; use InvalidArgumentException; use League\Plates\Engine; +use Throwable; class Controller { + /** @var Session */ + protected $session; + /** @var User */ protected $user; @@ -29,6 +33,9 @@ class Controller public function __construct($router) { + $this->session = new Session($_SESSION['user' . Config::basepath()] ?? []); + $this->usermanager = new Modeluser(); + $this->setuser(); $this->router = $router; $this->pagemanager = new Modelpage(); @@ -38,8 +45,17 @@ class Controller public function setuser() { - $this->usermanager = new Modeluser(); - $this->user = $this->usermanager->readsession(); + if (empty($this->session->user)) { + $this->user = new User(); + } else { + if (!$this->user = $this->usermanager->get($this->session->user)) { + if (!$this->user = $this->usermanager->readcookie()) { + $this->user = new User(); + } else { + $this->session->addtosession('user', $this->user->id()); + } + } + } } public function initplates() -- cgit v1.2.3