aboutsummaryrefslogtreecommitdiff
path: root/app/class
diff options
context:
space:
mode:
authorvincent-peugnet <v.peugnet@free.fr>2020-04-09 02:17:47 +0200
committervincent-peugnet <v.peugnet@free.fr>2020-04-09 02:17:47 +0200
commit0e66e1d890ca775b50b43990a4d92c035c1eb5b2 (patch)
tree16f56864ad5686a337d03de326041e518481d22a /app/class
parent1270f3300998afbc5defab832e02cc831f486d9f (diff)
downloadwcms-0e66e1d890ca775b50b43990a4d92c035c1eb5b2.tar.gz
wcms-0e66e1d890ca775b50b43990a4d92c035c1eb5b2.zip
feature : cookie session management
Diffstat (limited to 'app/class')
-rw-r--r--app/class/Controller.php2
-rw-r--r--app/class/Controlleruser.php21
-rw-r--r--app/class/Modelauthtoken.php13
-rw-r--r--app/class/Routes.php1
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'],