diff options
author | vincent-peugnet <v.peugnet@free.fr> | 2020-04-09 02:17:47 +0200 |
---|---|---|
committer | vincent-peugnet <v.peugnet@free.fr> | 2020-04-09 02:17:47 +0200 |
commit | 0e66e1d890ca775b50b43990a4d92c035c1eb5b2 (patch) | |
tree | 16f56864ad5686a337d03de326041e518481d22a /app/class | |
parent | 1270f3300998afbc5defab832e02cc831f486d9f (diff) | |
download | wcms-0e66e1d890ca775b50b43990a4d92c035c1eb5b2.tar.gz wcms-0e66e1d890ca775b50b43990a4d92c035c1eb5b2.zip |
feature : cookie session management
Diffstat (limited to 'app/class')
-rw-r--r-- | app/class/Controller.php | 2 | ||||
-rw-r--r-- | app/class/Controlleruser.php | 21 | ||||
-rw-r--r-- | app/class/Modelauthtoken.php | 13 | ||||
-rw-r--r-- | app/class/Routes.php | 1 |
4 files changed, 32 insertions, 5 deletions
diff --git a/app/class/Controller.php b/app/class/Controller.php index 7398a7d..ab40a82 100644 --- a/app/class/Controller.php +++ b/app/class/Controller.php @@ -2,6 +2,7 @@ namespace Wcms; +use DateTime; use DateTimeImmutable; use League\Plates\Engine; @@ -63,6 +64,7 @@ class Controller $commonsparams['user'] = $this->user; $commonsparams['pagelist'] = $this->pagemanager->list(); $commonsparams['css'] = Model::csspath(); + $commonsparams['now'] = new DateTimeImmutable(); return $commonsparams; } diff --git a/app/class/Controlleruser.php b/app/class/Controlleruser.php index 3856914..0ec8092 100644 --- a/app/class/Controlleruser.php +++ b/app/class/Controlleruser.php @@ -12,12 +12,15 @@ class Controlleruser extends Controller public function desktop() { if($this->user->iseditor()) { - $getuser = $this->usermanager->get($this->user); + $authtokenmanager = new Modelauthtoken(); + $datas['tokenlist'] = $authtokenmanager->listbyuser($this->user->id()); + $datas['getuser'] = $this->usermanager->get($this->user); + if($this->user->isadmin()) { - $userlist = $this->usermanager->getlister(); - $this->showtemplate('user', ['userlist' => $userlist, 'getuser' => $getuser, 'now' => $this->now->format('Y-m-d')]); + $datas['userlist'] = $this->usermanager->getlister(); + $this->showtemplate('user', $datas); } else { - $this->showtemplate('user', ['getuser' => $getuser]); + $this->showtemplate('user', $datas); } } else { $this->routedirect('home'); @@ -59,6 +62,16 @@ class Controlleruser extends Controller } } + public function token() + { + if (isset($_POST['tokendelete'])) { + + $authtokenmanager = new Modelauthtoken(); + $authtokenmanager->delete($_POST['tokendelete']); + } + $this->routedirect('user'); + } + public function update() { if($this->user->isadmin() && isset($_POST['action'])) { diff --git a/app/class/Modelauthtoken.php b/app/class/Modelauthtoken.php index 18ef6a7..91a2a05 100644 --- a/app/class/Modelauthtoken.php +++ b/app/class/Modelauthtoken.php @@ -2,6 +2,7 @@ namespace Wcms; +use DateTimeImmutable; use JamesMoss\Flywheel\Document; class Modelauthtoken extends Modeldb @@ -26,7 +27,9 @@ class Modelauthtoken extends Modeldb $datas = [ 'user' => $user->id(), 'ip' => $_SERVER['SERVER_ADDR'], - 'creationdate' => '1' + 'date' => new DateTimeImmutable(), + 'conservation' => $user->cookie(), + 'useragent' => $_SERVER['HTTP_USER_AGENT'] ]; $tokendata = new Document($datas); @@ -51,6 +54,14 @@ class Modelauthtoken extends Modeldb return $this->repo->delete($token); } + /** + * @param string $id user Id + */ + public function listbyuser(string $id) + { + return $this->repo->query()->where('user', '==', $id)->orderBy('date')->execute(); + } + } diff --git a/app/class/Routes.php b/app/class/Routes.php index e71bf59..03e193c 100644 --- a/app/class/Routes.php +++ b/app/class/Routes.php @@ -43,6 +43,7 @@ class Routes ['POST', '/!user/add', 'Controlleruser#add', 'useradd'], ['POST', '/!user/update', 'Controlleruser#update', 'userupdate'], ['POST', '/!user/pref', 'Controlleruser#pref', 'userpref'], + ['POST', '/!user/token', 'Controlleruser#token', 'usertoken'], ['GET', '/!info', 'Controllerinfo#desktop', 'info'], ['GET', '/!timeline', 'Controllertimeline#desktop', 'timeline'], ['POST', '/!timeline/add', 'Controllertimeline#add', 'timelineadd'], |