support do=tokenauth login for passwordless accounts
authorJoey Hess <joey@kitenet.net>
Mon, 2 Apr 2012 16:29:13 +0000 (12:29 -0400)
committerJoey Hess <joey@kitenet.net>
Mon, 2 Apr 2012 16:29:13 +0000 (12:29 -0400)
IkiWiki/Plugin/passwordauth.pm

index ac955dc50fd703884d1c54dbf943d9c989c5e454..ea6ed158ab27d7d5c85c3dcae705780c9b817464 100644 (file)
@@ -362,6 +362,22 @@ sub sessioncgi ($$) {
                IkiWiki::cgi_prefs($q, $session);
                exit;
        }
+       elsif ($q->param('do') eq 'tokenauth') {
+               my $name=$q->param("name");
+               my $token=$q->param("token");
+
+               if (! defined $name || ! defined $token ||
+                   ! length $name  || ! length $token) {
+                       error(gettext("incorrect url"));
+               }
+               if (! checkpassword($name, $token, "passwordless")) {
+                       error(gettext("access denied"));
+               }
+
+               $session->param("name", $name);
+               IkiWiki::cgi_prefs($q, $session);
+               exit;
+       }
        elsif ($q->param("do") eq "register") {
                # After registration, need to go somewhere, so show prefs page.
                $session->param(postsignin => "do=prefs");