aboutsummaryrefslogtreecommitdiff
path: root/createaccount.cgi
diff options
context:
space:
mode:
Diffstat (limited to 'createaccount.cgi')
-rwxr-xr-xcreateaccount.cgi47
1 files changed, 47 insertions, 0 deletions
diff --git a/createaccount.cgi b/createaccount.cgi
new file mode 100755
index 0000000..e3b8320
--- /dev/null
+++ b/createaccount.cgi
@@ -0,0 +1,47 @@
+#!/usr/bin/perl -wT
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+use strict;
+
+use lib qw(. lib);
+
+use Bugzilla;
+use Bugzilla::Constants;
+use Bugzilla::Error;
+use Bugzilla::Token;
+
+# Just in case someone already has an account, let them get the correct footer
+# on an error message. The user is logged out just after the account is
+# actually created.
+my $user = Bugzilla->login(LOGIN_OPTIONAL);
+my $cgi = Bugzilla->cgi;
+my $template = Bugzilla->template;
+my $vars = { doc_section => 'myaccount.html' };
+
+print $cgi->header();
+
+$user->check_account_creation_enabled;
+my $login = $cgi->param('login');
+
+if (defined($login)) {
+ # Check the hash token to make sure this user actually submitted
+ # the create account form.
+ my $token = $cgi->param('token');
+ check_hash_token($token, ['create_account']);
+
+ $user->check_and_send_account_creation_confirmation($login);
+ $vars->{'login'} = $login;
+
+ $template->process("account/created.html.tmpl", $vars)
+ || ThrowTemplateError($template->error());
+ exit;
+}
+
+# Show the standard "would you like to create an account?" form.
+$template->process("account/create.html.tmpl", $vars)
+ || ThrowTemplateError($template->error());