diff options
author | vincent-peugnet <v.peugnet@free.fr> | 2020-05-25 17:05:08 +0200 |
---|---|---|
committer | vincent-peugnet <v.peugnet@free.fr> | 2020-05-25 17:05:08 +0200 |
commit | 55fc826f9827dd86427534c11594c0d9c4f0b8d1 (patch) | |
tree | 173075f643de38d6ac79dc86cd4b1099f99a3eaf /app | |
parent | bab3d969f6ab1846d818e4ef4d4f777c13575d88 (diff) | |
download | wcms-55fc826f9827dd86427534c11594c0d9c4f0b8d1.tar.gz wcms-55fc826f9827dd86427534c11594c0d9c4f0b8d1.zip |
add /login and /logout close #117
Diffstat (limited to 'app')
-rw-r--r-- | app/class/Controller.php | 12 | ||||
-rw-r--r-- | app/class/Controllerconnect.php | 2 | ||||
-rw-r--r-- | app/class/Controllerpage.php | 19 | ||||
-rw-r--r-- | app/class/Routes.php | 2 | ||||
-rw-r--r-- | app/view/templates/alert.php | 2 |
5 files changed, 36 insertions, 1 deletions
diff --git a/app/class/Controller.php b/app/class/Controller.php index c631726..2b38988 100644 --- a/app/class/Controller.php +++ b/app/class/Controller.php @@ -161,4 +161,16 @@ class Controller Model::sendflashmessage($count . ' / ' . $total . ' ' . $message, 'error'); } } + + /** + * Destroy session and cookie token in user database + */ + public function disconnect() + { + $this->session->addtosession('user', ''); + $this->user->destroysession($this->session->wsession); + $this->session->addtosession('wsession', ''); + $this->usermanager->add($this->user); + + } } diff --git a/app/class/Controllerconnect.php b/app/class/Controllerconnect.php index 4790c63..bd9f9a3 100644 --- a/app/class/Controllerconnect.php +++ b/app/class/Controllerconnect.php @@ -54,7 +54,7 @@ class Controllerconnect extends Controller $this->usermanager->add($this->user); $this->session->addtosession('user', $this->user->id()); - if ($_POST['rememberme']) { + if (!empty($_POST['rememberme'])) { if ($this->user->cookie() > 0) { try { $this->modelconnect = new Modelconnect(); diff --git a/app/class/Controllerpage.php b/app/class/Controllerpage.php index c7e1f98..e864dd3 100644 --- a/app/class/Controllerpage.php +++ b/app/class/Controllerpage.php @@ -311,6 +311,25 @@ class Controllerpage extends Controller $this->routedirect('home'); } + public function logout(string $id) + { + if (!$this->user->isvisitor()) { + $this->disconnect(); + $this->routedirect('pageread', ['page' => $id]); + } else { + $this->routedirect('pageread/', ['page' => $id]); + } + } + + public function login(string $id) + { + if ($this->user->isvisitor()) { + $this->showtemplate('connect', ['id' => $id, 'route' => 'pageread/']); + } else { + $this->routedirect('pageread/', ['page' => $id]); + } + } + public function delete($id) { $this->setpage($id, 'pagedelete'); diff --git a/app/class/Routes.php b/app/class/Routes.php index 65d8444..c59531d 100644 --- a/app/class/Routes.php +++ b/app/class/Routes.php @@ -61,6 +61,8 @@ class Routes ['GET', '/[cid:page]/render', 'Controllerpage#render', 'pagerender'], ['GET', '/[cid:page]/log', 'Controllerpage#log', 'pagelog'], ['GET', '/[cid:page]/download', 'Controllerpage#download', 'pagedownload'], + ['GET', '/[cid:page]/logout', 'Controllerpage#logout', 'pagelogout'], + ['GET', '/[cid:page]/login', 'Controllerpage#login', 'pagelogin'], ['POST', '/[cid:page]/edit', 'Controllerpage#update', 'pageupdate'], ['POST', '/[cid:page]/editby', 'Controllerpage#editby', 'pageeditby'], ['POST', '/[cid:page]/removeeditby', 'Controllerpage#removeeditby', 'pageremoveeditby'], diff --git a/app/view/templates/alert.php b/app/view/templates/alert.php index 1672443..e4aced5 100644 --- a/app/view/templates/alert.php +++ b/app/view/templates/alert.php @@ -38,6 +38,8 @@ $this->stop(); <input type="password" name="pass" id="loginpass" placeholder="password"> <input type="hidden" name="route" value="pageread/"> <input type="hidden" name="id" value="' . $page->id() . '"> + <input type="checkbox" name="rememberme" id="rememberme" value="1"> + <label for="rememberme">Remember me</label> <input type="submit" name="log" value="login" id="button"> </form> </p>'; |