]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/openid.pm
Merge commit 'upstream/master'
[git.ikiwiki.info.git] / IkiWiki / Plugin / openid.pm
index de31f38ee3fffb7d8e9910afd5fadcf46ad41983..f12cbdaa37fad0c77ada865a521ff68a0d95e785 100644 (file)
@@ -8,6 +8,7 @@ use IkiWiki 2.00;
 
 sub import { #{{{
        hook(type => "getopt", id => "openid", call => \&getopt);
 
 sub import { #{{{
        hook(type => "getopt", id => "openid", call => \&getopt);
+       hook(type => "getsetup", id => "openid", call => \&getsetup);
        hook(type => "auth", id => "openid", call => \&auth);
        hook(type => "formbuilder_setup", id => "openid",
                call => \&formbuilder_setup, last => 1);
        hook(type => "auth", id => "openid", call => \&auth);
        hook(type => "formbuilder_setup", id => "openid",
                call => \&formbuilder_setup, last => 1);
@@ -20,6 +21,21 @@ sub getopt () { #{{{
        GetOptions("openidsignup=s" => \$config{openidsignup});
 } #}}}
 
        GetOptions("openidsignup=s" => \$config{openidsignup});
 } #}}}
 
+sub getsetup () { #{{{
+       return
+               plugin => {
+                       safe => 1,
+                       rebuild => 0,
+               },
+               openidsignup => {
+                       type => "string",
+                       example => "http://myopenid.com/",
+                       description => "an url where users can signup for an OpenID",
+                       safe => 1,
+                       rebuild => 0,
+               },
+} #}}}
+
 sub formbuilder_setup (@) { #{{{
        my %params=@_;
 
 sub formbuilder_setup (@) { #{{{
        my %params=@_;
 
@@ -27,15 +43,15 @@ sub formbuilder_setup (@) { #{{{
        my $session=$params{session};
        my $cgi=$params{cgi};
        
        my $session=$params{session};
        my $cgi=$params{cgi};
        
-       # Give up if module is unavailable to avoid needing to depend on
-       # it.
-       eval q{use Net::OpenID::Consumer};
-       if ($@) {
-               debug("unable to load Net::OpenID::Consumer, not enabling OpenID login");
-               return;
-       }
-
        if ($form->title eq "signin") {
        if ($form->title eq "signin") {
+               # Give up if module is unavailable to avoid
+               # needing to depend on it.
+               eval q{use Net::OpenID::Consumer};
+               if ($@) {
+                       debug("unable to load Net::OpenID::Consumer, not enabling OpenID login ($@)");
+                       return;
+               }
+
                # This avoids it displaying a redundant label for the
                # OpenID fieldset.
                $form->fieldsets("OpenID");
                # This avoids it displaying a redundant label for the
                # OpenID fieldset.
                $form->fieldsets("OpenID");