X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/a2e78ebcf27680eedf30e00f1ee9b86ed1d9e127..e63ead1c13290f314579f90e8ae2a607f2b69e7a:/IkiWiki/Plugin/passwordauth.pm

diff --git a/IkiWiki/Plugin/passwordauth.pm b/IkiWiki/Plugin/passwordauth.pm
index b3a798055..35ebd961f 100644
--- a/IkiWiki/Plugin/passwordauth.pm
+++ b/IkiWiki/Plugin/passwordauth.pm
@@ -19,6 +19,7 @@ sub getsetup () {
 		plugin => {
 			safe => 1,
 			rebuild => 0,
+			section => "auth",
 		},
 		account_creation_password => {
 			type => "string",
@@ -104,11 +105,13 @@ sub formbuilder_setup (@) {
 	my $session=$params{session};
 	my $cgi=$params{cgi};
 
-	if ($form->title eq "signin" || $form->title eq "register" || $cgi->param("do") eq "register") {
+	my $do_register=defined $cgi->param("do") && $cgi->param("do") eq "register";
+
+	if ($form->title eq "signin" || $form->title eq "register" || $do_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" || $cgi->param("do") eq "register") {
+		if ($form->submitted eq "Register" || $form->submitted eq "Create Account" || $do_register) {
 			$form->field(name => "confirm_password", type => "password");
 			$form->field(name => "account_creation_password", type => "password")
 				 if (defined $config{account_creation_password} &&
@@ -223,7 +226,7 @@ sub formbuilder_setup (@) {
 					shift eq $form->field("password");
 				});
 			
-			my $userpage=$config{userdir} ? $config{userdir}."/".$user : $user;
+			my $userpage=IkiWiki::userpage($user);
 			if (exists $pagesources{$userpage}) {
 				$form->text(gettext("Your user page: ").
 					htmllink("", "", $userpage,
@@ -246,8 +249,10 @@ sub formbuilder (@) {
 	my $cgi=$params{cgi};
 	my $buttons=$params{buttons};
 
+	my $do_register=defined $cgi->param("do") && $cgi->param("do") eq "register";
+
 	if ($form->title eq "signin" || $form->title eq "register") {
-		if (($form->submitted && $form->validate) || $cgi->param("do") eq "register") {
+		if (($form->submitted && $form->validate) || $do_register) {
 			if ($form->submitted eq 'Login') {
 				$session->param("name", $form->field("name"));
 				IkiWiki::cgi_postsignin($cgi, $session);
@@ -292,7 +297,7 @@ sub formbuilder (@) {
 					),
 					wikiurl => $config{url},
 					wikiname => $config{wikiname},
-					REMOTE_ADDR => $ENV{REMOTE_ADDR},
+					remote_addr => $session->remote_addr(),
 				);
 				
 				eval q{use Mail::Sendmail};
@@ -310,7 +315,7 @@ sub formbuilder (@) {
 				$form->field(name => "name", required => 0);
 				push @$buttons, "Reset Password";
 			}
-			elsif ($form->submitted eq "Register" || $cgi->param("do") eq "register") {
+			elsif ($form->submitted eq "Register" || $do_register) {
 				@$buttons="Create Account";
 			}
 		}