829aff43713868597789cf218a22b070aa3851f9
[minimedit.git] / admin / pass.php
1 <?php
2 if ($_POST) {
3         $error = passform($_POST);
4         if (empty($error)) {
5                 print "<p>Het wachtwoord is aangepast. Voortaan met het nieuwe wachtwoord inloggen.</p>\n\n";
6                 return;
7         }
8         print "<p class=warn>$error</p>\n\n";
9 }
10
11 function passform($input = [])
12 {
13         global $User;
14
15         if (empty($User)) {
16                 return "Log eerst (opnieuw?) in.";
17         }
18
19         $pwfile = "{$User['dir']}/.passwd";
20         if (!is_writable($pwfile)) {
21                 return "Het wachtwoord kan niet worden aangepast voor deze gebruiker.";
22         }
23
24         if (empty($_POST['oldpass'])) {
25                 return "Als extra beveiliging tegen ongewenste aanpassingen moet het bestaande wachtwoord worden ingevoerd.";
26         }
27
28         if (empty($_POST['newpass'])) {
29                 return "Geef ook een nieuw wachtwoord op.";
30         }
31
32         if (strlen($_POST['newpass']) < 4) {
33                 return "Zo'n kort wachtwoord is een slecht idee.";
34         }
35
36         if ($_POST['newpass'] == $User['name']) {
37                 return "De loginnaam is wel heel makkelijk raadbaar als wachtwoord.";
38         }
39
40         if (!login_password_verify($_POST['oldpass'], $User['pass'])) {
41                 return "Het bestaande wachtwoord is onjuist ingevoerd; niet aangepast.";
42         }
43
44         if (!file_put_contents($pwfile, $_POST['newpass'])) {
45                 return "Het nieuwe wachtwoord kon niet worden opgeslagen. Het oude wachtwoord is behouden.";
46         }
47
48         $authhash = md5($_POST['newpass']);
49         $User['auth'] = "{$User['name']}:$authhash";
50         login_setcookie();
51         return;
52 }
53
54 ?>
55 <form method="post">
56 <p>
57 <input type="password" name="oldpass" value="" placeholder="Huidig wachtwoord" />
58 <input type="password" name="newpass" value="" placeholder="Nieuw wachtwoord" />
59 <input type="submit" value="Wijzig" />
60 </p>
61 </form>