2 function passform(&$user, $input = [])
5 return "Log eerst (opnieuw?) in.";
8 $pwfile = "{$user->dir}/.passwd";
9 if (file_exists($pwfile) and !is_writable($pwfile)) {
10 return "Het wachtwoord kan niet worden aangepast voor deze gebruiker.";
13 if (!empty($user->pass)) {
14 if (empty($input['oldpass'])) {
15 return "Als extra beveiliging tegen ongewenste aanpassingen moet het bestaande wachtwoord worden ingevoerd.";
18 if (!login_password_verify($input['oldpass'], $user->pass)) {
19 return "Het bestaande wachtwoord is onjuist ingevoerd; niet aangepast.";
23 if (empty($input['newpass'])) {
24 return "Geef een nieuw wachtwoord op.";
27 if (strlen($input['newpass']) < 4) {
28 return "Zo'n kort wachtwoord is een slecht idee.";
31 if ($input['newpass'] == $user->login) {
32 return "De loginnaam is wel heel makkelijk raadbaar als wachtwoord.";
35 if ($input['newpass'] != $input['passconf']) {
36 return "Zorg dat bij de bevestiging precies het zelfde wachtwoord staat.";
39 $passstore = password_hash($input['newpass'], PASSWORD_DEFAULT);
40 if (empty($passstore) or !file_put_contents($pwfile, $passstore)) {
41 return "Het nieuwe wachtwoord kon niet worden opgeslagen. Het oude wachtwoord is behouden.";
44 @unlink("{$user->dir}/.token"); # invalidate reset token
46 $authhash = md5($passstore);
47 $user->auth = "{$user->login}:$authhash";
48 if ($GLOBALS['User'] === $user) {