git.shiar.nl
/
minimedit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
login: userless handler call to obtain metadata
[minimedit.git]
/
login
/
index.php
diff --git
a/login/index.php
b/login/index.php
index 5cfbdedf8d322d00fd171a1436e48a238a6812f4..2b073f03d6da4c563bfbab9639610047070ebcea 100644
(file)
--- a/
login/index.php
+++ b/
login/index.php
@@
-1,4
+1,5
@@
<?php
<?php
+if (!$User) return;
$message = NULL;
if (isset($_POST['mail'])) {
$message = NULL;
if (isset($_POST['mail'])) {
@@
-35,30
+36,49
@@
elseif (isset($_GET['logout'])) {
$message = "Je bent uitgelogd. Graag tot ziens!";
}
$message = "Je bent uitgelogd. Graag tot ziens!";
}
-if (empty($User)) {
- ob_clean();
- require_once 'login/form.inc.php';
- $Place['warn'] = $message;
- $Article->title = 'Inloggen';
+if (!$User or !$User->login) {
+ $Page->title = 'Inloggen';
if (isset($_REQUEST['goto'])) {
if (isset($_REQUEST['goto'])) {
+ if (empty($message)) http_response_code(403);
$target = ltrim($_REQUEST['goto'], '/');
$target = new ArchiveArticle("$target.html");
$target = ltrim($_REQUEST['goto'], '/');
$target = new ArchiveArticle("$target.html");
+
+ if ($target and $target->handler) {
+ # run forbidden handler to determine metadata
+ $User = NULL;
+ $caller = $Page;
+ $Page = $target;
+ ob_start();
+ include "./{$target->handler}/index.php";
+ ob_end_clean();
+ $Page = $caller;
+ }
+
if ($target->title) {
if ($target->title) {
- $
Articl
e->title .= ' voor ' . $target->title;
+ $
Pag
e->title .= ' voor ' . $target->title;
}
}
+ $Page->image = $target->image;
+ $Page->teaser = $target->teaser;
}
}
+ ob_start();
+ require_once 'login/form.inc.php';
+ $Page->raw = ob_get_clean();
+ $Page->place['warn'] = $message;
return TRUE;
}
if (isset($_REQUEST['goto'])) {
return TRUE;
}
if (isset($_REQUEST['goto'])) {
- ob_clean();
$target = ltrim($_REQUEST['goto'], '/');
header("Location: /$target");
http_response_code(302);
exit;
}
$target = ltrim($_REQUEST['goto'], '/');
header("Location: /$target");
http_response_code(302);
exit;
}
-if (empty($Args) and $User and $User->admin) {
+if (isset($Page->raw)) {
+ print $Page->raw;
+}
+if (empty($Page->path) and $User->admin) {
include_once 'login/admin.html';
}
include_once 'login/admin.html';
}
+return;