]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/passwordauth.pm
When emailauth can't send, show the error message.
[git.ikiwiki.info.git] / IkiWiki / Plugin / passwordauth.pm
index 0dde0386e7efce0e10624fb8b8b33e6e14f3e032..cfa3ad41865e98cefe52295384a25c905300beb8 100644 (file)
@@ -113,7 +113,7 @@ sub gentoken ($$;$) {
 
        eval q{use CGI::Session};
        error($@) if $@;
-       my $token = CGI::Session->new->id;
+       my $token = CGI::Session->new("driver:DB_File", undef, {FileName => "/dev/null"})->id;
        if (! $reversable) {
                setpassword($user, $token, $tokenfield);
        }
@@ -332,10 +332,13 @@ sub formbuilder (@) {
                                IkiWiki::cgi_postsignin($cgi, $session);
                        }
                        elsif ($form->submitted eq 'Create Account') {
+                               my $email = $form->field('email');
+                               my $password = $form->field('password');
+
                                if (IkiWiki::userinfo_setall($user_name, {
-                                       'email' => $form->field('email'),
+                                       'email' => $email,
                                        'regdate' => time})) {
-                                       setpassword($user_name, $form->field('password'));
+                                       setpassword($user_name, $password);
                                        $form->field(name => "confirm_password", type => "hidden");
                                        $form->field(name => "email", type => "hidden");
                                        $form->text(gettext("Account creation successful. Now you can Login."));
@@ -355,7 +358,7 @@ sub formbuilder (@) {
                                my $template=template("passwordmail.tmpl");
                                $template->param(
                                        user_name => $user_name,
-                                       passwordurl => IkiWiki::cgiurl_abs(
+                                       passwordurl => IkiWiki::cgiurl_abs_samescheme(
                                                'do' => "reset",
                                                'name' => $user_name,
                                                'token' => $token,
@@ -394,8 +397,9 @@ sub formbuilder (@) {
        elsif ($form->title eq "preferences") {
                if ($form->submitted eq "Save Preferences" && $form->validate) {
                        my $user_name=$form->field('name');
-                       if (defined $form->field("password") && length $form->field("password")) {
-                               setpassword($user_name, scalar $form->field('password'));
+                       my $password=$form->field('password');
+                       if (defined $password && length $password) {
+                               setpassword($user_name, $password);
                        }
                }
        }