dir}/.passwd"; if (file_exists($pwfile) and !is_writable($pwfile)) { return "Het wachtwoord kan niet worden aangepast voor deze gebruiker."; } 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)) { return "Het bestaande wachtwoord is onjuist ingevoerd; niet aangepast."; } } 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 ($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."; } $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 $authhash = md5($passstore); $user->auth = "{$user->login}:$authhash"; if ($User === $user) { login_setcookie(); } return; }