auth: store global user metadata in User object
[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 = new User($userdir);
8                 $User->pass = NULL;
9         }
10         else {
11                 http_response_code(403);
12                 print "<p class=warn>Code onjuist, geen toestemming om wachtwoord in te stellen.</p>\n";
13                 return TRUE;
14         }
15 }
16 elseif (!$User) {
17         http_response_code(303);
18         $target = urlencode($_SERVER['REQUEST_URI']);
19         header("Location: /login?goto=$target");
20         exit;
21 }
22
23 if ($_POST) {
24         require_once('login/pass.inc.php');
25         $error = passform($User, $_POST);
26         if (empty($error)) {
27                 print "<p>Het wachtwoord is aangepast voor <em>{$User->login}</em>. Voortaan met het nieuwe wachtwoord inloggen.</p>\n\n";
28                 return;
29         }
30         http_response_code(400);
31         print "<p class=warn>$error</p>\n\n";
32 }
33
34 ?>
35 <form method="post">
36 <p>
37 Hier kun je een nieuwe inlogcode instellen voor <em><?= htmlspecialchars($User->login) ?></em>.
38 Dit zal de huidige code vervangen.
39 </p>
40 <p>
41 <?php if ($User and strlen($User->pass)) { ?>
42 <input type="password" name="oldpass" value="" placeholder="Huidig wachtwoord" />
43 <?php } ?>
44 <input type="password" name="newpass" value="" placeholder="Nieuw wachtwoord" />
45 <input type="password" name="passconf" value="" placeholder="Nogmaals" />
46 <input type="submit" value="Wijzig" />
47 </p>
48 </form>