summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CGI.pl32
-rwxr-xr-xcreateaccount.cgi79
-rw-r--r--index.html3
-rwxr-xr-xquery.cgi1
4 files changed, 102 insertions, 13 deletions
diff --git a/CGI.pl b/CGI.pl
index 74d383646..fa3acb93e 100644
--- a/CGI.pl
+++ b/CGI.pl
@@ -260,6 +260,25 @@ sub quietly_check_login() {
+sub CheckEmailSyntax {
+ my ($addr) = (@_);
+ if ($addr !~ /^[^@, ]*@[^@, ]*\.[^@, ]*$/) {
+ print "Content-type: text/html\n\n";
+
+ print "<H1>Invalid e-mail address entered.</H1>\n";
+ print "The e-mail address you entered\n";
+ print "(<b>$addr</b>) 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 "<p>Please click <b>back</b> 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 "<H1>Invalid e-mail address entered.</H1>\n";
- print "The e-mail address you entered\n";
- print "(<b>$enteredlogin</b>) 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 "<p>Please click <b>back</b> and try again.\n";
- exit;
- }
my $realcryptpwd = PasswordForLogin($::FORM{"Bugzilla_login"});
if (defined $::FORM{"PleaseMailAPassword"}) {
diff --git a/createaccount.cgi b/createaccount.cgi
new file mode 100755
index 000000000..c6bef90cf
--- /dev/null
+++ b/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 <terry@mozilla.org>
+# David Gardiner <david.gardiner@unisa.edu.au>
+
+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 <tt>$login</tt> already\n";
+ print "exists. If you have forgotten the password for it, then\n";
+ print "<a href=query.cgi?GoAheadAndLogIn>click here</a> and use\n";
+ print "the <b>E-mail me a password</b> button.\n";
+ exit;
+ }
+ DBNameToIdAndCheck($login, 1);
+ print "A bugzilla account for <tt>$login</tt> has been created. The\n";
+ print "password has been e-mailed to that address. When it is\n";
+ print "received, you may <a href=query.cgi?GoAheadAndLogIn>click\n";
+ print "here</a> and log in. Or, you can just <a href=\"\">go back to\n";
+ print "the top</a>.";
+ 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.
+
+<FORM method=get>
+<table>
+<tr>
+<td align=right><b>E-mail address:</b></td>
+<td><input size=35 name=login></td>
+</tr>
+</table>
+<input type=submit>
+};
+
diff --git a/index.html b/index.html
index a8e36662f..7cef3c1e2 100644
--- a/index.html
+++ b/index.html
@@ -69,7 +69,8 @@ But it all boils down to a choice of:
<br>
<a href="query.cgi">Go to the query page to start.</a><br>
<a href="enter_bug.cgi">Enter a new bug</a><br>
-<a href="reports.cgi">Bug reports</a>
+<a href="reports.cgi">Bug reports</a><br>
+<a href="createaccount.cgi">Open a new Bugzilla account</a><br>
<FORM METHOD=GET ACTION=show_bug.cgi><INPUT TYPE=SUBMIT VALUE="Find"> bug
# <INPUT NAME=id SIZE=6></FORM></TD>
diff --git a/query.cgi b/query.cgi
index b34f87b13..38d95589b 100755
--- a/query.cgi
+++ b/query.cgi
@@ -546,4 +546,5 @@ if (defined $::COOKIE{"Bugzilla_login"}) {
}
print "<a href=changepassword.cgi>Change your password.</a><br>\n";
print "<a href=\"enter_bug.cgi\">Create a new bug.</a><br>\n";
+print "<a href=\"createaccount.cgi\">Open a new Bugzilla account</a><br>\n";
print "<a href=\"reports.cgi\">Bug reports</a><br>\n";