From 452f5801b62b191123f9ded6c02844275ab62259 Mon Sep 17 00:00:00 2001 From: vincent-peugnet Date: Mon, 24 Dec 2018 12:24:22 +0100 Subject: user self delete --- app/class/controller.php | 4 +++- app/class/controlleruser.php | 4 +++- app/class/modeluser.php | 8 +++++--- app/view/templates/userconfirmdelete.php | 4 ++-- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/class/controller.php b/app/class/controller.php index 5dfc09b..eef6967 100644 --- a/app/class/controller.php +++ b/app/class/controller.php @@ -2,7 +2,9 @@ class Controller { - + /** + * @var User + */ protected $user; protected $router; /** diff --git a/app/class/controlleruser.php b/app/class/controlleruser.php index 9daf1fb..ffbfecb 100644 --- a/app/class/controlleruser.php +++ b/app/class/controlleruser.php @@ -38,7 +38,9 @@ class Controlleruser extends Controller $user = new User($_POST); $user = $this->usermanager->get($user); if($user !== false) { - if($user->isadmin() && $this->usermanager->admincount() === 1) { + var_dump($user); + var_dump($this->user); + if($user->id() === $this->user->id()) { $this->showtemplate('userconfirmdelete', ['userdelete' => $user, 'candelete' => false]); } else { $this->showtemplate('userconfirmdelete', ['userdelete' => $user, 'candelete' => true]); diff --git a/app/class/modeluser.php b/app/class/modeluser.php index 613d13b..42c2f4c 100644 --- a/app/class/modeluser.php +++ b/app/class/modeluser.php @@ -18,7 +18,7 @@ class Modeluser extends Modeldb public function writesession(User $user) { - $_SESSION['user' . Config::basepath()] = ['level' => $user->level()]; + $_SESSION['user' . Config::basepath()] = ['level' => $user->level(), 'id' => $user->id()]; } public function readsession() @@ -26,9 +26,11 @@ class Modeluser extends Modeldb $userdatas = []; if (array_key_exists('user' . Config::basepath(), $_SESSION)) { $userdatas = $_SESSION['user' . Config::basepath()]; + $user = new User($userdatas); + return $user; + } else { + return false; } - $user = new User($userdatas); - return $user; } public function login($pass) diff --git a/app/view/templates/userconfirmdelete.php b/app/view/templates/userconfirmdelete.php index 069f5de..0394f12 100644 --- a/app/view/templates/userconfirmdelete.php +++ b/app/view/templates/userconfirmdelete.php @@ -30,9 +30,9 @@ if($candelete) {

You can't delete this user

-

You need at least one admin user to run the system.

+

You can't delete yourself

-

To delete this user, create at least another admin user, then retry to delete this one.

+

To delete this user, create at least another admin user, log in as this other admin user, the try to delete this user.

Go back to users -- cgit v1.2.3