aboutsummaryrefslogtreecommitdiff
path: root/app/class
diff options
context:
space:
mode:
Diffstat (limited to 'app/class')
-rw-r--r--app/class/Controller.php12
-rw-r--r--app/class/Controllerconnect.php2
-rw-r--r--app/class/Controllerpage.php19
-rw-r--r--app/class/Routes.php2
4 files changed, 34 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'],