Allow jumping directly into account registration process by going to ikiwiki.cgi...
authorJoey Hess <joey@gnu.kitenet.net>
Thu, 4 Feb 2010 19:51:56 +0000 (14:51 -0500)
committerJoey Hess <joey@gnu.kitenet.net>
Thu, 4 Feb 2010 19:51:56 +0000 (14:51 -0500)
IkiWiki/Plugin/passwordauth.pm
debian/changelog

index 8cf5af51ed03d47ff90963dd1aece3c9ea773cbb..1898030b58e9fca83496b6ca2c865ac0cdac62ac 100644 (file)
@@ -104,11 +104,11 @@ sub formbuilder_setup (@) {
        my $session=$params{session};
        my $cgi=$params{cgi};
 
-       if ($form->title eq "signin" || $form->title eq "register") {
+       if ($form->title eq "signin" || $form->title eq "register" || $cgi->param("do") eq "register") {
                $form->field(name => "name", required => 0);
                $form->field(name => "password", type => "password", required => 0);
                
-               if ($form->submitted eq "Register" || $form->submitted eq "Create Account") {
+               if ($form->submitted eq "Register" || $form->submitted eq "Create Account" || $cgi->param("do") eq "register") {
                        $form->field(name => "confirm_password", type => "password");
                        $form->field(name => "account_creation_password", type => "password")
                                 if (defined $config{account_creation_password} &&
@@ -232,7 +232,7 @@ sub formbuilder (@) {
        my $buttons=$params{buttons};
 
        if ($form->title eq "signin" || $form->title eq "register") {
-               if ($form->submitted && $form->validate) {
+               if (($form->submitted && $form->validate) || $cgi->param("do") eq "register") {
                        if ($form->submitted eq 'Login') {
                                $session->param("name", $form->field("name"));
                                IkiWiki::cgi_postsignin($cgi, $session);
@@ -295,7 +295,7 @@ sub formbuilder (@) {
                                $form->field(name => "name", required => 0);
                                push @$buttons, "Reset Password";
                        }
-                       elsif ($form->submitted eq "Register") {
+                       elsif ($form->submitted eq "Register" || $cgi->param("do") eq "register") {
                                @$buttons="Create Account";
                        }
                }
@@ -336,6 +336,14 @@ sub sessioncgi ($$) {
                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");
+               # Due to do=register, this will run in registration-only
+               # mode.
+               IkiWiki::cgi_signin($q, $session);
+               exit;
+       }
 }
 
 sub auth ($$) {
index 8e01950a8cec86c1ce1c6bac43351b46bb73bc59..7beb0db8211d78ec677893c4bdfe268d2088b390 100644 (file)
@@ -4,6 +4,8 @@ ikiwiki (3.20100123) UNRELEASED; urgency=low
   * img: Fix a bug that could taint @links with undef values.
   * setup automator: Configure Term::Readline to use bold for prompt, rather
     than default underline. Closes: #517656
+  * Allow jumping directly into account registration process by going to 
+    ikiwiki.cgi?do=register
 
  -- Joey Hess <joeyh@debian.org>  Tue, 26 Jan 2010 22:25:33 -0500