summaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2010-02-05 15:22:02 -0500
committerJoey Hess <joey@gnu.kitenet.net>2010-02-05 15:22:02 -0500
commit5541b06de43c70ca9c23231d175d474789dacd25 (patch)
tree3ccff1485e1a1eaa4556db01de8b36cae9fdf079 /IkiWiki/Plugin
parent919d66b3257a7733049b8ac158ae6c80e0613ef0 (diff)
response
Diffstat (limited to 'IkiWiki/Plugin')
-rw-r--r--IkiWiki/Plugin/httpauth.pm14
1 files changed, 13 insertions, 1 deletions
diff --git a/IkiWiki/Plugin/httpauth.pm b/IkiWiki/Plugin/httpauth.pm
index 127c321f0..c1811643b 100644
--- a/IkiWiki/Plugin/httpauth.pm
+++ b/IkiWiki/Plugin/httpauth.pm
@@ -9,6 +9,8 @@ use IkiWiki 3.00;
sub import {
hook(type => "getsetup", id => "httpauth", call => \&getsetup);
hook(type => "auth", id => "httpauth", call => \&auth);
+ hook(type => "canedit", id => "httpauth", call => \&canedit,
+ last => 1);
}
sub getsetup () {
@@ -33,10 +35,20 @@ sub auth ($$) {
if (defined $cgi->remote_user()) {
$session->param("name", $cgi->remote_user());
}
- elsif (defined $config{cgiauthurl}) {
+}
+
+sub canedit ($$$) {
+ my $page=shift;
+ my $cgi=shift;
+ my $session=shift;
+
+ if (! defined $cgi->remote_user() && defined $config{cgiauthurl}) {
IkiWiki::redirect($cgi, $config{cgiauthurl}.'?'.$cgi->query_string());
exit;
}
+ else {
+ return undef;
+ }
}
1