2 function passform($user, $input = [])
5 return "Log eerst (opnieuw?) in.";
8 $pwfile = "{$user['dir']}/.passwd";
9 if (!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['name']) {
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($input['newpass']);
47 $user['auth'] = "{$user['name']}:$authhash";
48 if ($GLOBALS['User'] === $user) {