From c3a530ab93c01f449554d3cee472594d895e4126 Mon Sep 17 00:00:00 2001 From: joey Date: Mon, 30 Oct 2006 23:28:01 +0000 Subject: [PATCH] * Improve login/register process, the login dialog has only name and password fields, which allows more web browsers to regognise it as a login field, and is less confusing. --- IkiWiki/CGI.pm | 35 ++++++++++++++++++++++++----------- debian/changelog | 5 ++++- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 8b01ca3f8..3ba6cf7f8 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -116,7 +116,7 @@ sub cgi_signin ($$) { #{{{ eval q{use CGI::FormBuilder}; my $form = CGI::FormBuilder->new( title => "signin", - fields => [qw(do title page subpage from name password confirm_password email)], + fields => [qw(do title page subpage from name password)], header => 1, charset => "utf-8", method => 'POST', @@ -145,8 +145,14 @@ sub cgi_signin ($$) { #{{{ $form->field(name => "from", type => "hidden"); $form->field(name => "subpage", type => "hidden"); $form->field(name => "password", type => "password", required => 0); - $form->field(name => "confirm_password", type => "password", required => 0); - $form->field(name => "email", required => 0); + if ($form->submitted eq "Register" || $form->submitted eq "Create Account") { + $form->title("register"); + $form->text(""); + $form->field(name => "name", comment => "use FirstnameLastName"); + $form->fields(qw(do title page subpage from name password confirm_password email)); + $form->field(name => "confirm_password", type => "password"); + $form->field(name => "email", type => "text"); + } if ($q->param("do") ne "signin" && !$form->submitted) { $form->text("You need to log in first."); } @@ -155,7 +161,8 @@ sub cgi_signin ($$) { #{{{ # Set required fields based on how form was submitted. my %required=( "Login" => [qw(name password)], - "Register" => [qw(name password confirm_password email)], + "Register" => [], + "Create Account" => [qw(name password confirm_password email)], "Mail Password" => [qw(name)], ); foreach my $opt (@{$required{$form->submitted}}) { @@ -179,7 +186,7 @@ sub cgi_signin ($$) { #{{{ } # And make sure the entered name exists when logging # in or sending email, and does not when registering. - if ($form->submitted eq 'Register') { + if ($form->submitted eq 'Create Account') { $form->field( name => "name", validate => sub { @@ -204,8 +211,6 @@ sub cgi_signin ($$) { #{{{ else { # First time settings. $form->field(name => "name", comment => "use FirstnameLastName"); - $form->field(name => "confirm_password", comment => "(only needed"); - $form->field(name => "email", comment => "for registration)"); if ($session->param("name")) { $form->field(name => "name", value => $session->param("name")); } @@ -228,7 +233,7 @@ sub cgi_signin ($$) { #{{{ redirect($q, $config{url}); } } - elsif ($form->submitted eq 'Register') { + elsif ($form->submitted eq 'Create Account') { my $user_name=$form->field('name'); if (userinfo_setall($user_name, { 'email' => $form->field('email'), @@ -237,12 +242,12 @@ sub cgi_signin ($$) { #{{{ })) { $form->field(name => "confirm_password", type => "hidden"); $form->field(name => "email", type => "hidden"); - $form->text("Registration successful. Now you can Login."); + $form->text("Account creation successful. Now you can Login."); printheader($session); print misctemplate($form->title, $form->render(submit => ["Login"])); } else { - error("Error saving registration."); + error("Error creating account."); } } elsif ($form->submitted eq 'Mail Password') { @@ -267,9 +272,17 @@ sub cgi_signin ($$) { #{{{ $form->text("Your password has been emailed to you."); $form->field(name => "name", required => 0); printheader($session); - print misctemplate($form->title, $form->render(submit => ["Login", "Register", "Mail Password"])); + print misctemplate($form->title, $form->render(submit => ["Login", "Mail Password"])); + } + elsif ($form->submitted eq "Register") { + printheader($session); + print misctemplate($form->title, $form->render(submit => ["Create Account"])); } } + elsif ($form->submitted eq "Create Account") { + printheader($session); + print misctemplate($form->title, $form->render(submit => ["Create Account"])); + } else { printheader($session); print misctemplate($form->title, $form->render(submit => ["Login", "Register", "Mail Password"])); diff --git a/debian/changelog b/debian/changelog index 13f7ab794..5e01b4679 100644 --- a/debian/changelog +++ b/debian/changelog @@ -20,8 +20,11 @@ ikiwiki (1.32) UNRELEASED; urgency=low them together. * Install the source of the examples into /usr/share/doc/ikiwiki/examples. * Add perlmagick to build-depends so syntax check of img plugin works. + * Improve login/register process, the login dialog has only name and + password fields, which allows more web browsers to regognise it as a login + field, and is less confusing. - -- Joey Hess Mon, 30 Oct 2006 14:30:54 -0500 + -- Joey Hess Mon, 30 Oct 2006 18:26:55 -0500 ikiwiki (1.31) unstable; urgency=low -- 2.26.2