diff --git a/webtools/bugzilla/CGI.pl b/webtools/bugzilla/CGI.pl index 74d383646f76..fa3acb93e6c6 100644 --- a/webtools/bugzilla/CGI.pl +++ b/webtools/bugzilla/CGI.pl @@ -260,6 +260,25 @@ sub quietly_check_login() { +sub CheckEmailSyntax { + my ($addr) = (@_); + if ($addr !~ /^[^@, ]*@[^@, ]*\.[^@, ]*$/) { + print "Content-type: text/html\n\n"; + + print "

Invalid e-mail address entered.

\n"; + print "The e-mail address you entered\n"; + print "($addr) didn't match our minimal\n"; + print "syntax checking for a legal email address. A legal\n"; + print "address must contain exactly one '\@', and at least one\n"; + print "'.' after the \@, and may not contain any commas or.\n"; + print "spaces.\n"; + print "

Please click back and try again.\n"; + exit; + } +} + + + sub confirm_login { my ($nexturl) = (@_); @@ -272,19 +291,8 @@ sub confirm_login { my $enteredlogin = $::FORM{"Bugzilla_login"}; my $enteredpwd = $::FORM{"Bugzilla_password"}; - if ($enteredlogin !~ /^[^@, ]*@[^@, ]*\.[^@, ]*$/) { - print "Content-type: text/html\n\n"; + CheckEmailSyntax($enteredlogin); - print "

Invalid e-mail address entered.

\n"; - print "The e-mail address you entered\n"; - print "($enteredlogin) didn't match our minimal\n"; - print "syntax checking for a legal email address. A legal\n"; - print "address must contain exactly one '\@', and at least one\n"; - print "'.' after the \@, and may not contain any commas or.\n"; - print "spaces.\n"; - print "

Please click back and try again.\n"; - exit; - } my $realcryptpwd = PasswordForLogin($::FORM{"Bugzilla_login"}); if (defined $::FORM{"PleaseMailAPassword"}) { diff --git a/webtools/bugzilla/createaccount.cgi b/webtools/bugzilla/createaccount.cgi new file mode 100755 index 000000000000..c6bef90cfe78 --- /dev/null +++ b/webtools/bugzilla/createaccount.cgi @@ -0,0 +1,79 @@ +#!/usr/bonsaitools/bin/perl -w +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public License +# Version 1.0 (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): Terry Weissman +# David Gardiner + +use diagnostics; +use strict; + +require "CGI.pl"; + +# Shut up misguided -w warnings about "used only once": + +use vars %::FORM; + +ConnectToDatabase(); + +# Clear out the login cookies. Make people log in again if they create an +# account; otherwise, they'll probably get confused. + +print "Set-Cookie: Bugzilla_login= ; path=/; expires=Sun, 30-Jun-80 00:00:00 GMT +Set-Cookie: Bugzilla_logincookie= ; path=/; expires=Sun, 30-Jun-80 00:00:00 GMT +Set-Cookie: Bugzilla_password= ; path=/; expires=Sun, 30-Jun-80 00:00:00 GMT +Content-type: text/html + +"; + +PutHeader("Create a new bugzilla account"); + +my $login = $::FORM{'login'}; +if (defined $login) { + CheckEmailSyntax($login); + if (DBname_to_id($login) != 0) { + print "A bugzilla account for the name $login already\n"; + print "exists. If you have forgotten the password for it, then\n"; + print "click here and use\n"; + print "the E-mail me a password button.\n"; + exit; + } + DBNameToIdAndCheck($login, 1); + print "A bugzilla account for $login has been created. The\n"; + print "password has been e-mailed to that address. When it is\n"; + print "received, you may click\n"; + print "here and log in. Or, you can just go back to\n"; + print "the top."; + exit; +} + +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. + +

+ + + + + +
E-mail address:
+ +}; + diff --git a/webtools/bugzilla/index.html b/webtools/bugzilla/index.html index a8e36662f4d7..7cef3c1e2cc9 100644 --- a/webtools/bugzilla/index.html +++ b/webtools/bugzilla/index.html @@ -69,7 +69,8 @@ But it all boils down to a choice of:
Go to the query page to start.
Enter a new bug
-Bug reports +Bug reports
+Open a new Bugzilla account
bug #
diff --git a/webtools/bugzilla/query.cgi b/webtools/bugzilla/query.cgi index b34f87b137ff..38d95589b793 100755 --- a/webtools/bugzilla/query.cgi +++ b/webtools/bugzilla/query.cgi @@ -546,4 +546,5 @@ if (defined $::COOKIE{"Bugzilla_login"}) { } print "Change your password.
\n"; print "Create a new bug.
\n"; +print "Open a new Bugzilla account
\n"; print "Bug reports
\n";