From 093b58d93d97ef29e579356f2486859476e99034 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Fri, 18 Oct 2019 21:22:25 +0200 Subject: [PATCH] login/edit: password generation for user admins Option to reset users of Lijtweg. --- login/pass.inc.php | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/login/pass.inc.php b/login/pass.inc.php index 5b03c80..61685fe 100644 --- a/login/pass.inc.php +++ b/login/pass.inc.php @@ -1,6 +1,8 @@ pass)) { + if (!empty($user->pass) and !$User->admin('user') ) { if (empty($input['oldpass'])) { return "Als extra beveiliging tegen ongewenste aanpassingen moet het bestaande wachtwoord worden ingevoerd."; } @@ -20,23 +22,29 @@ function passform(&$user, $input = []) } } - if (empty($input['newpass'])) { - return "Geef een nieuw wachtwoord op."; + if ($input['newpass'] == 'GEN') { + $passstore = random_int(10000, 99999); } + else { + if (empty($input['newpass'])) { + return "Geef een nieuw wachtwoord op."; + } - if (strlen($input['newpass']) < 4) { - return "Zo'n kort wachtwoord is een slecht idee."; - } + if (strlen($input['newpass']) < 4) { + return "Zo'n kort wachtwoord is een slecht idee."; + } - if ($input['newpass'] == $user->login) { - return "De loginnaam is wel heel makkelijk raadbaar als wachtwoord."; - } + if ($input['newpass'] == $user->login) { + return "De loginnaam is wel heel makkelijk raadbaar als wachtwoord."; + } + + if ($input['newpass'] != $input['passconf']) { + return "Zorg dat bij de bevestiging precies het zelfde wachtwoord staat."; + } - if ($input['newpass'] != $input['passconf']) { - return "Zorg dat bij de bevestiging precies het zelfde wachtwoord staat."; + $passstore = password_hash($input['newpass'], PASSWORD_DEFAULT); } - $passstore = password_hash($input['newpass'], PASSWORD_DEFAULT); if (empty($passstore) or !file_put_contents($pwfile, $passstore)) { return "Het nieuwe wachtwoord kon niet worden opgeslagen. Het oude wachtwoord is behouden."; } @@ -45,7 +53,7 @@ function passform(&$user, $input = []) $authhash = md5($passstore); $user->auth = "{$user->login}:$authhash"; - if ($GLOBALS['User'] === $user) { + if ($User === $user) { login_setcookie(); } return; -- 2.30.0