createaccount.cgi 3.31 KB
Newer Older
1 2 3
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
4 5 6 7 8 9 10 11 12 13
# 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.
#
14
# The Original Code is the Bugzilla Bug Tracking System.
15
#
16
# The Initial Developer of the Original Code is Netscape Communications
17 18 19 20
# Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
21 22
# Contributor(s): Terry Weissman <terry@mozilla.org>
#                 David Gardiner <david.gardiner@unisa.edu.au>
23
#                 Joe Robins <jmrobins@tgix.com>
24
#                 Christopher Aillon <christopher@aillon.com>
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

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.

40 41 42
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
43 44 45 46
Content-type: text/html

";

47 48 49 50 51 52 53 54
# 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";
  PutFooter();
  exit;
}
55 56

my $login = $::FORM{'login'};
57
my $realname = trim($::FORM{'realname'});
58 59 60
if (defined $login) {
    CheckEmailSyntax($login);
    if (DBname_to_id($login) != 0) {
61 62 63 64 65 66 67 68 69 70
        PutHeader("Account Exists");
        print qq|
          <form method="get" action="token.cgi">
            <input type="hidden" name="a" value="reqpw">
            <input type="hidden" name="loginname" value="$login">
            A Bugzilla account for <tt>$login</tt> already exists.  If you
            are the account holder and have forgotten your password, 
            <input type="submit" value="submit a request to change it">.
          </form>
        |;
71
        PutFooter();
72
        exit;
73
    }
74
    PutHeader("Account created");
75
    my $password = InsertNewUser($login, $realname);
76
    MailPassword($login, $password);
77 78
    print " You can also <a href=query.cgi?GoAheadAndLogIn>click\n";
    print "here</a> to log in for the first time.";
79
    PutFooter();
80 81 82
    exit;
}

83
PutHeader("Create a new bugzilla account");
84 85 86
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
87 88
password will be mailed to you. Optionally you may enter your real name 
as well.
89 90 91 92 93

<FORM method=get>
<table>
<tr>
<td align=right><b>E-mail address:</b></td>
94
<td><input size=35 name=login>}.Param('emailsuffix').q{</td>
95
</tr>
96 97 98 99
<tr>
<td align=right><b>Real name:</b></td>
<td><input size=35 name=realname></td>
</tr>
100
</table>
101
<input type="submit" value="Create Account">
102 103
};

104
PutFooter();