login/pass: allow edits without existing setup
[minimedit.git] / login / pass / index.php
1 <?php
2 if (isset($_GET['token'])) {
3         @list ($username, $token) = explode(':', $_GET['token']);
4         $userdir = strtolower("profile/$username");
5         if ($verify = @file_get_contents("$userdir/.token")
6         and $verify == $token) {
7                 $User = [
8                         'name' => $username,
9                         'dir'  => $userdir,
10                         'pass' => NULL,
11                 ];
12         }
13         else {
14                 print "<p class=warn>Code onjuist, geen toestemming om wachtwoord in te stellen.</p>\n";
15                 return TRUE;
16         }
17 }
18 elseif (!$User) {
19         http_response_code(303);
20         $target = urlencode($_SERVER['REQUEST_URI']);
21         header("Location: /login?goto=$target");
22         exit;
23 }
24
25 if ($_POST) {
26         require_once('login/pass.inc.php');
27         $error = passform($User, $_POST);
28         if (empty($error)) {
29                 print "<p>Het wachtwoord is aangepast voor <em>{$User['name']}</em>. Voortaan met het nieuwe wachtwoord inloggen.</p>\n\n";
30                 return;
31         }
32         print "<p class=warn>$error</p>\n\n";
33 }
34
35 ?>
36 <form method="post">
37 <p>
38 <?php if (!empty($User['pass'])) { ?>
39 <input type="password" name="oldpass" value="" placeholder="Huidig wachtwoord" />
40 <?php } ?>
41 <input type="password" name="newpass" value="" placeholder="Nieuw wachtwoord" />
42 <input type="password" name="passconf" value="" placeholder="Nogmaals" />
43 <input type="submit" value="Wijzig" />
44 </p>
45 </form>