]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/openid.pm
releasing version 3.20110905
[git.ikiwiki.info.git] / IkiWiki / Plugin / openid.pm
index d393afd2363be34a455d76f9b4442a54d00366ce..b6642619ac29330944da4af8b3e3c90ffcf21e9a 100644 (file)
@@ -8,6 +8,7 @@ use IkiWiki 3.00;
 
 sub import {
        add_underlay("openid-selector");
+       add_underlay("jquery");
        hook(type => "checkconfig", id => "openid", call => \&checkconfig);
        hook(type => "getsetup", id => "openid", call => \&getsetup);
        hook(type => "auth", id => "openid", call => \&auth);
@@ -77,14 +78,14 @@ sub openid_selector {
 
        my $template=IkiWiki::template("openid-selector.tmpl");
        $template->param(
-               cgiurl => $config{cgiurl},
+               cgiurl => IkiWiki::cgiurl(),
                (defined $openid_error ? (openid_error => $openid_error) : ()),
                (defined $openid_url ? (openid_url => $openid_url) : ()),
                ($real_cgi_signin ? (nonopenidform => $real_cgi_signin->($q, $session, 1)) : ()),
        );
 
        IkiWiki::printheader($session);
-       print IkiWiki::misctemplate("signin", $template->output);
+       print IkiWiki::cgitemplate($q, "signin", $template->output);
        exit;
 }
 
@@ -148,7 +149,7 @@ sub validate ($$$;$) {
        }
 
        my $cgiurl=$config{openid_cgiurl};
-       $cgiurl=$config{cgiurl} if ! defined $cgiurl;
+       $cgiurl=$q->url if ! defined $cgiurl;
 
        my $trust_root=$config{openid_realm};
        $trust_root=$cgiurl if ! defined $trust_root;
@@ -175,7 +176,7 @@ sub auth ($$) {
                        IkiWiki::redirect($q, $setup_url);
                }
                elsif ($csr->user_cancel) {
-                       IkiWiki::redirect($q, $config{url});
+                       IkiWiki::redirect($q, IkiWiki::baseurl(undef));
                }
                elsif (my $vident = $csr->verified_identity) {
                        $session->param(name => $vident->url);
@@ -211,8 +212,8 @@ sub auth ($$) {
                                }
                        }
                        if (defined $nickname) {
-                               $nickname=~s/\s+/_/g;
-                               $session->param(nickname => $nickname);
+                               $session->param(nickname =>
+                                       Encode::decode_utf8($nickname));
                        }
                }
                else {
@@ -229,6 +230,7 @@ sub getobj ($$) {
        my $q=shift;
        my $session=shift;
 
+       eval q{use Net::INET6Glue::INET_is_INET6}; # may not be available
        eval q{use Net::OpenID::Consumer};
        error($@) if $@;
 
@@ -249,7 +251,7 @@ sub getobj ($$) {
        }
        
        my $cgiurl=$config{openid_cgiurl};
-       $cgiurl=$config{cgiurl} if ! defined $cgiurl;
+       $cgiurl=$q->url if ! defined $cgiurl;
 
        return Net::OpenID::Consumer->new(
                ua => $ua,