]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/httpauth.pm
patch so far
[git.ikiwiki.info.git] / IkiWiki / Plugin / httpauth.pm
index 1816c9d74c27aaee1e2b6114e62dd06b8fca1d4c..a18f8ca54619c146093498891f67057fd6c2b9e5 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 () {
@@ -17,6 +19,13 @@ sub getsetup () {
                        safe => 1,
                        rebuild => 0,
                },
+               cgiauthurl => {
+                       type => "string",
+                       example => "http://example.com/wiki/auth/ikiwiki.cgi",
+                       description => "url to redirect to when authentication is needed",
+                       safe => 1,
+                       rebuild => 0,
+               },
 }
 
 sub auth ($$) {
@@ -28,4 +37,20 @@ sub auth ($$) {
        }
 }
 
+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;
+       }
+}
+
 1