login: run handler of pending melding page
[minimedit.git] / login / index.php
index 08351339d81cbeacd09ba11c2d3a86e3b6fd71de..0ac33ac863f7d59bded2317e5c837358de36f53a 100644 (file)
@@ -10,10 +10,12 @@ if (isset($_POST['mail'])) {
                        $message = "Er is een e-mail verstuurd naar $inputq.";
                }
                else {
+                       http_response_code(404);
                        $message = "E-mailadres $inputq is nergens ingesteld.";
                }
        }
        catch (Exception $e) {
+               http_response_code(500);
                $message = "E-mail kon niet verstuurd worden."
                        . " Probeer het later nog eens of neem contact op.";
        }
@@ -23,6 +25,7 @@ elseif (isset($_POST['login'])) {
                login_setcookie();
        }
        else {
+               http_response_code(403);
                $message = 'Ongeldige gebruikersnaam of wachtwoord.';
        }
 }
@@ -33,27 +36,42 @@ elseif (isset($_GET['logout'])) {
 }
 
 if (empty($User)) {
-       ob_clean();
+       $Article->title = 'Inloggen';
+       if (isset($_REQUEST['goto'])) {
+               $target = ltrim($_REQUEST['goto'], '/');
+               $target = new ArchiveArticle("$target.html");
+
+               if ($Page = $target->handler and $target->handler == 'melding') {
+                       $caller = $Article;
+                       $Article = $target;
+                       $Args = $target->path;
+                       ob_start();
+                       include "./{$target->handler}/index.php";
+                       ob_end_clean();
+                       $Article = $caller;
+               }
+
+               if ($target->title) {
+                       $Article->title .= ' voor ' . $target->title;
+               }
+       }
        require_once 'login/form.inc.php';
-       $part = ['warn' => $message];
-       print getoutput($part);
-       return TRUE;
+       $Place['warn'] = $message;
+       return;
 }
 
-if (isset($_GET['goto'])) {
-       ob_clean();
-       $target = ltrim($_GET['goto'], '/');
+if (isset($_REQUEST['goto'])) {
+       $target = ltrim($_REQUEST['goto'], '/');
        header("Location: /$target");
        http_response_code(302);
        exit;
 }
 
-$part = [
-       'user'  => $User['name'],
-];
-print getoutput($part);
-
-if (empty($Args) and !empty($User['admin'])) {
+if (isset($Article->raw)) {
+       print $Article->raw;
+}
+if (empty($Args) and $User and $User->admin) {
        include_once 'login/admin.html';
-       include_once 'login/admin/index.php';
 }
+
+return;