aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2012-04-04 12:58:36 -0400
committerJoey Hess <joey@kitenet.net>2012-04-04 12:58:36 -0400
commit93bda514baad6b5e9dce5b6cce62155ac4ba7d68 (patch)
treee391587467d98e3339127857167280d0cbdbc210 /IkiWiki
parentd1849a4deb0256f0ef60a04f123676bcba558120 (diff)
downloadikiwiki-93bda514baad6b5e9dce5b6cce62155ac4ba7d68.tar
ikiwiki-93bda514baad6b5e9dce5b6cce62155ac4ba7d68.tar.gz
httpauth: When it's the only auth method, avoid a pointless and confusing signin form, and just right to the httpauthurl.
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/Plugin/httpauth.pm14
1 files changed, 14 insertions, 0 deletions
diff --git a/IkiWiki/Plugin/httpauth.pm b/IkiWiki/Plugin/httpauth.pm
index cb488449d..76d574b2a 100644
--- a/IkiWiki/Plugin/httpauth.pm
+++ b/IkiWiki/Plugin/httpauth.pm
@@ -7,6 +7,7 @@ use strict;
use IkiWiki 3.00;
sub import {
+ hook(type => "checkconfig", id => "httpauth", call => \&checkconfig);
hook(type => "getsetup", id => "httpauth", call => \&getsetup);
hook(type => "auth", id => "httpauth", call => \&auth);
hook(type => "formbuilder_setup", id => "httpauth",
@@ -37,6 +38,19 @@ sub getsetup () {
rebuild => 0,
},
}
+
+sub checkconfig () {
+ if ($config{cgi} && defined $config{cgiauthurl} &&
+ keys %{$IkiWiki::hooks{auth}} < 2) {
+ # There are no other auth hooks registered, so avoid
+ # the normal signin form, and jump right to httpauth.
+ require IkiWiki::CGI;
+ inject(name => "IkiWiki::cgi_signin", call => sub ($$) {
+ my $cgi=shift;
+ redir_cgiauthurl($cgi, $cgi->query_string());
+ });
+ }
+}
sub redir_cgiauthurl ($;@) {
my $cgi=shift;