]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/httpauth.pm
response
[ikiwiki.git] / IkiWiki / Plugin / httpauth.pm
index 127c321f0491978c9b88760685963f785cd1062e..c1811643b7c77666b0b9e9ff95ceaea7de6ba100 100644 (file)
@@ -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