From: gerv%gerv.net <>
Date: Wed, 30 Jan 2002 07:26:34 +0000 (+0000)
Subject: Bug 117509 - createaccount.cgi templatisation.
X-Git-Tag: bugzilla-2.16rc1~261
X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7703b328bc570f75edbf287b2b78ef2cbb89996a;p=thirdparty%2Fbugzilla.git
Bug 117509 - createaccount.cgi templatisation.
---
diff --git a/CGI.pl b/CGI.pl
index 3929c8a6d4..90217db183 100644
--- a/CGI.pl
+++ b/CGI.pl
@@ -747,11 +747,6 @@ sub MailPassword {
open SENDMAIL, "|/usr/lib/sendmail -t";
print SENDMAIL $msg;
close SENDMAIL;
-
- print "The password for the e-mail address\n";
- print "$login has been e-mailed to that address.\n";
- print "
When the e-mail arrives, you can click Back\n";
- print "and enter your password in the form there.\n";
}
@@ -791,9 +786,17 @@ sub confirm_login {
# into the database, and email their password to them.
if ( defined $::FORM{"PleaseMailAPassword"} && !$userid ) {
my $password = InsertNewUser($enteredlogin, "");
+ # There's a template for this - account_created.tmpl - but
+ # it's easier to wait to use it until templatisation has progressed
+ # further; we want to avoid sprinkling multiple copies of the
+ # template setup code everywhere - Gerv.
print "Content-Type: text/html\n\n";
PutHeader("Account Created");
MailPassword($enteredlogin, $password);
+ print "The password for the e-mail address\n";
+ print "$enteredlogin has been e-mailed to that address.\n";
+ print "
When the e-mail arrives, you can click Back\n";
+ print "and enter your password in the form there.\n";
PutFooter();
exit;
}
diff --git a/createaccount.cgi b/createaccount.cgi
index 839b81fb37..86a994483c 100755
--- a/createaccount.cgi
+++ b/createaccount.cgi
@@ -22,6 +22,7 @@
# David Gardiner
# Joe Robins
# Christopher Aillon
+# Gervase Markham
use diagnostics;
use strict;
@@ -31,76 +32,72 @@ use lib qw(.);
require "CGI.pl";
# Shut up misguided -w warnings about "used only once":
-
use vars %::FORM;
-ConnectToDatabase();
+# Use the template toolkit (http://www.template-toolkit.org/)
+use Template;
-# Clear out the login cookies. Make people log in again if they create an
-# account; otherwise, they'll probably get confused.
+# Create the global template object that processes templates
+my $template = Template->new(
+{
+ # Colon-separated list of directories containing templates.
+ INCLUDE_PATH => "template/custom:template/default",
+ RELATIVE => 1,
+ PRE_CHOMP => 1,
+});
-my $cookiepath = Param("cookiepath");
-print "Set-Cookie: Bugzilla_login= ; path=$cookiepath; expires=Sun, 30-Jun-80 00:00:00 GMT
-Set-Cookie: Bugzilla_logincookie= ; path=$cookiepath; expires=Sun, 30-Jun-80 00:00:00 GMT
-Content-type: text/html
+# Define the global variables and functions that will be passed to the UI
+# template.
+my $vars =
+{
+ 'Param' => \&Param,
+ 'PerformSubsts' => \&PerformSubsts,
+};
-";
+ConnectToDatabase();
# If we're using LDAP for login, then we can't create a new account here.
if(Param('useLDAP')) {
- PutHeader("Can't create LDAP accounts");
- print "This site is using LDAP for authentication. Please contact an LDAP ";
- print "administrator to get a new account created.\n";
+ DisplayError("This site is using LDAP for authentication. Please contact
+ an LDAP administrator to get a new account created.",
+ "Can't create LDAP accounts");
PutFooter();
exit;
}
+# Clear out the login cookies. Make people log in again if they create an
+# account; otherwise, they'll probably get confused.
+my $cookiepath = Param("cookiepath");
+print "Set-Cookie: Bugzilla_login= ; path=$cookiepath; expires=Sun, 30-Jun-80 00:00:00 GMT
+Set-Cookie: Bugzilla_logincookie= ; path=$cookiepath; expires=Sun, 30-Jun-80 00:00:00 GMT\n";
+
+print "Content-Type: text/html\n\n";
+
my $login = $::FORM{'login'};
my $realname = trim($::FORM{'realname'});
-if (defined $login) {
+
+if (defined($login)) {
+ # We've been asked to create an account.
CheckEmailSyntax($login);
+ $vars->{'login'} = $login;
+
if (DBname_to_id($login) != 0) {
- PutHeader("Account Exists");
- print qq|
-
- |;
- PutFooter();
+ # Account already exists
+ $template->process("admin/account_exists.tmpl", $vars)
+ || DisplayError("Template process failed: " . $template->error());
exit;
}
- PutHeader("Account created");
+
+ # Create account
my $password = InsertNewUser($login, $realname);
MailPassword($login, $password);
- print " You can also click\n";
- print "here to log in for the first time.";
- PutFooter();
+
+ $template->process("admin/account_created.tmpl", $vars)
+ || DisplayError("Template process failed: " . $template->error());
exit;
}
-PutHeader("Create a new bugzilla account");
-print q{
-To create a bugzilla account, all that you need to do is to enter a
-legitimate e-mail address. The account will be created, and its
-password will be mailed to you. Optionally you may enter your real name
-as well.
-
-