aboutsummaryrefslogtreecommitdiff
path: root/app/class/Controller.php
diff options
context:
space:
mode:
authorvincent-peugnet <v.peugnet@free.fr>2020-05-15 20:05:26 +0200
committervincent-peugnet <v.peugnet@free.fr>2020-05-15 20:05:26 +0200
commitded1b2a19ee238543d561b6f26312458d2a43974 (patch)
treeb5569c95266ad7482298a7feffb6a3be24a19844 /app/class/Controller.php
parent3f69df3b93510f2704f3af9d54b9bf3b34d0e6bb (diff)
downloadwcms-ded1b2a19ee238543d561b6f26312458d2a43974.tar.gz
wcms-ded1b2a19ee238543d561b6f26312458d2a43974.zip
new cookie session system
composer require JWT user stores sessions
Diffstat (limited to 'app/class/Controller.php')
-rw-r--r--app/class/Controller.php27
1 files changed, 20 insertions, 7 deletions
diff --git a/app/class/Controller.php b/app/class/Controller.php
index 11a2c12..c631726 100644
--- a/app/class/Controller.php
+++ b/app/class/Controller.php
@@ -45,17 +45,30 @@ class Controller
public function setuser()
{
- 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();
+ // check session, then cookies
+ if (!empty($this->session->user)) {
+ $user = $this->usermanager->get($this->session->user);
+ } elseif (!empty($_COOKIE['authtoken'])) {
+ try {
+ $modelconnect = new Modelconnect();
+ $datas = $modelconnect->checkcookie();
+ $user = $this->usermanager->get($datas['userid']);
+ if ($user !== false && $user->checksession($datas['wsession'])) {
+ $this->session->addtosession("wsession", $datas['wsession']);
+ $this->session->addtosession("user", $datas['userid']);
} else {
- $this->session->addtosession('user', $this->user->id());
+ $user = false;
}
+ } catch (Exception $e) {
+ Model::sendflashmessage("Invalid Autentification cookie exist : $e", "warning");
}
}
+ // create visitor
+ if (empty($user)) {
+ $this->user = new User();
+ } else {
+ $this->user = $user;
+ }
}
public function initplates()