diff options
author | Joey Hess <joey@gnu.kitenet.net> | 2010-02-11 16:36:19 -0500 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2010-02-11 16:36:19 -0500 |
commit | f2d6d4f6b24bb399481c40dc6eb6f3fe25190c5d (patch) | |
tree | ab25a4337e30c2b9ead6bf14ba80d55eede4ad52 | |
parent | c47712b340153fca4015f8d0e344ced5b12a3e17 (diff) | |
download | ikiwiki-f2d6d4f6b24bb399481c40dc6eb6f3fe25190c5d.tar ikiwiki-f2d6d4f6b24bb399481c40dc6eb6f3fe25190c5d.tar.gz |
patch so far
-rw-r--r-- | IkiWiki/Plugin/httpauth.pm | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/IkiWiki/Plugin/httpauth.pm b/IkiWiki/Plugin/httpauth.pm index 127c321f0..a18f8ca54 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,9 +35,21 @@ sub auth ($$) { if (defined $cgi->remote_user()) { $session->param("name", $cgi->remote_user()); } - elsif (defined $config{cgiauthurl}) { - IkiWiki::redirect($cgi, $config{cgiauthurl}.'?'.$cgi->query_string()); - exit; +} + +sub canedit ($$$) { + my $page=shift; + my $cgi=shift; + my $session=shift; + + if (! defined $cgi->remote_user() && defined $config{cgiauthurl}) { + return sub { + IkiWiki::redirect($cgi, $config{cgiauthurl}.'?'.$cgi->query_string()); + exit; + }; + } + else { + return undef; } } |