X-Git-Url: http://git.shiar.net/minimedit.git/blobdiff_plain/651d9f8d7a700bfbc9d2c10a2f79eed9af8d62e4..093b58d93d97ef29e579356f2486859476e99034:/login/pass.inc.php diff --git a/login/pass.inc.php b/login/pass.inc.php index 5967904..61685fe 100644 --- a/login/pass.inc.php +++ b/login/pass.inc.php @@ -1,51 +1,59 @@ dir}/.passwd"; if (file_exists($pwfile) and !is_writable($pwfile)) { return "Het wachtwoord kan niet worden aangepast voor deze gebruiker."; } - if (!empty($user['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."; } - if (!login_password_verify($input['oldpass'], $user['pass'])) { + if (!login_password_verify($input['oldpass'], $user->pass)) { return "Het bestaande wachtwoord is onjuist ingevoerd; niet aangepast."; } } - 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['name']) { - 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."; } - @unlink("{$user['dir']}/.token"); # invalidate reset token + @unlink("{$user->dir}/.token"); # invalidate reset token - $authhash = md5($input['newpass']); - $user['auth'] = "{$user['name']}:$authhash"; - if ($GLOBALS['User'] === $user) { + $authhash = md5($passstore); + $user->auth = "{$user->login}:$authhash"; + if ($User === $user) { login_setcookie(); } return;