summaryrefslogtreecommitdiff
path: root/IkiWiki/CGI.pm
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-10-30 23:28:01 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-10-30 23:28:01 +0000
commitc3a530ab93c01f449554d3cee472594d895e4126 (patch)
treed8bfcbc5c83280b84253b09ec83b87005fab8ae4 /IkiWiki/CGI.pm
parent285b9d8b99717a1feab7fbf4b3795874fc0c247e (diff)
* 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.
Diffstat (limited to 'IkiWiki/CGI.pm')
-rw-r--r--IkiWiki/CGI.pm35
1 files changed, 24 insertions, 11 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"]));