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| -

- - - A Bugzilla account for $login already exists. If you - are the account holder and have forgotten your password, - . -
- |; - 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. - -
- - - - - - - - - -
E-mail address:}.Param('emailsuffix').q{
Real name:
- -}; - -PutFooter(); +# Show the standard "would you like to create an account?" form. +$template->process("admin/create_account.tmpl", $vars) + || DisplayError("Template process failed: " . $template->error()) + && exit; diff --git a/template/default/admin/account_created.tmpl b/template/default/admin/account_created.tmpl new file mode 100644 index 0000000000..f104eb0ac9 --- /dev/null +++ b/template/default/admin/account_created.tmpl @@ -0,0 +1,37 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% INCLUDE global/header + title = "Account Created" +%] + +

+ A new account, + [% login %], + has been created and a randomly-generated password has been e-mailed + to that address. +

+ +

+ When the e-mail arrives, + log in here. +

+ +[% INCLUDE global/footer %] diff --git a/template/default/admin/account_exists.tmpl b/template/default/admin/account_exists.tmpl new file mode 100644 index 0000000000..0f1882b42c --- /dev/null +++ b/template/default/admin/account_exists.tmpl @@ -0,0 +1,33 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% INCLUDE global/header + title = "Account Exists" +%] + + + + + A Bugzilla account for [% login %] already exists. If you + are the account holder and have forgotten your password, + . + + +[% INCLUDE global/footer %] diff --git a/template/default/admin/create_account.tmpl b/template/default/admin/create_account.tmpl new file mode 100644 index 0000000000..60effdf61e --- /dev/null +++ b/template/default/admin/create_account.tmpl @@ -0,0 +1,57 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% INCLUDE global/header + title = "Create a new Bugzilla account" +%] + +

+ 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. +

+ +
+ + + + + + + + + + +
+ E-mail address: + + + [% Param('emailsuffix') %] +
+ Real name: + + +
+
+ +
+ +[% INCLUDE global/footer %]