X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/e43cd269d2b492da6fc4bfdc3d6930e88f1dfa0c..f91d79f469956c423373c8747c92218c668f0ba8:/IkiWiki/Plugin/httpauth.pm diff --git a/IkiWiki/Plugin/httpauth.pm b/IkiWiki/Plugin/httpauth.pm index 786bcba3b..127c321f0 100644 --- a/IkiWiki/Plugin/httpauth.pm +++ b/IkiWiki/Plugin/httpauth.pm @@ -4,19 +4,39 @@ package IkiWiki::Plugin::httpauth; use warnings; use strict; -use IkiWiki; +use IkiWiki 3.00; -sub import { #{{{ +sub import { + hook(type => "getsetup", id => "httpauth", call => \&getsetup); hook(type => "auth", id => "httpauth", call => \&auth); -} # }}} +} -sub auth ($$) { #{{{ +sub getsetup () { + return + plugin => { + 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 ($$) { my $cgi=shift; my $session=shift; if (defined $cgi->remote_user()) { $session->param("name", $cgi->remote_user()); } -} #}}} + elsif (defined $config{cgiauthurl}) { + IkiWiki::redirect($cgi, $config{cgiauthurl}.'?'.$cgi->query_string()); + exit; + } +} 1