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