diff options
author | intrigeri <intrigeri@boum.org> | 2009-03-08 09:50:27 +0100 |
---|---|---|
committer | intrigeri <intrigeri@boum.org> | 2009-03-08 09:50:27 +0100 |
commit | ae474d8e14631ff519ed7d54bb64eaa0538f56d9 (patch) | |
tree | 09637db5faf2632b67b581cf04463fe4493584d4 /IkiWiki/CGI.pm | |
parent | 0314ed459ba1c49fad9170a54cc05f1c9e9c96bf (diff) | |
parent | 08e4472fc469c630ebef93e16a66a5a69d9cb33a (diff) | |
download | ikiwiki-ae474d8e14631ff519ed7d54bb64eaa0538f56d9.tar ikiwiki-ae474d8e14631ff519ed7d54bb64eaa0538f56d9.tar.gz |
Merge commit 'upstream/master' into prv/po
Conflicts:
IkiWiki/Plugin/editpage.pm
debian/control
debian/copyright
doc/todo/need_global_renamepage_hook.mdwn
Signed-off-by: intrigeri <intrigeri@boum.org>
Diffstat (limited to 'IkiWiki/CGI.pm')
-rw-r--r-- | IkiWiki/CGI.pm | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 3fadc462e..04f24b04f 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -142,7 +142,12 @@ sub cgi_postsignin ($$) { exit; } else { - error(gettext("login failed, perhaps you need to turn on cookies?")); + if ($config{sslcookie} && ! $q->https()) { + error(gettext("probable misconfiguration: sslcookie is set, but you are attepting to login via http, not https")); + } + else { + error(gettext("login failed, perhaps you need to turn on cookies?")); + } } } @@ -229,6 +234,20 @@ sub cgi_prefs ($$) { showform($form, $buttons, $session, $q); } +sub cgi_custom_failure ($$) { + my $header=shift; + my $message=shift; + + print $header; + print $message; + + # Internet Explod^Hrer won't show custom 404 responses + # unless they're >= 512 bytes + print ' ' x 512; + + exit; +} + sub check_banned ($$) { my $q=shift; my $session=shift; @@ -236,11 +255,11 @@ sub check_banned ($$) { my $name=$session->param("name"); if (defined $name) { if (grep { $name eq $_ } @{$config{banned_users}}) { - print $q->header(-status => "403 Forbidden"); $session->delete(); - print gettext("You are banned."); cgi_savesession($session); - exit; + cgi_custom_failure( + $q->header(-status => "403 Forbidden"), + gettext("You are banned.")); } } } @@ -317,7 +336,7 @@ sub cgi (;$$) { error("\"do\" parameter missing"); } } - + # Need to lock the wiki before getting a session. lockwiki(); loadindex(); |