summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Install.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Bugzilla/Install.pm')
-rw-r--r--Bugzilla/Install.pm33
1 files changed, 27 insertions, 6 deletions
diff --git a/Bugzilla/Install.pm b/Bugzilla/Install.pm
index e1ed65c36..37c87a2b1 100644
--- a/Bugzilla/Install.pm
+++ b/Bugzilla/Install.pm
@@ -308,27 +308,47 @@ sub create_admin {
my $template = Bugzilla->template;
my $admin_group = new Bugzilla::Group({ name => 'admin' });
- my $admin_inheritors =
+ my $admin_inheritors =
Bugzilla::Group->flatten_group_membership($admin_group->id);
my $admin_group_ids = join(',', @$admin_inheritors);
my ($admin_count) = $dbh->selectrow_array(
- "SELECT COUNT(*) FROM user_group_map
+ "SELECT COUNT(*) FROM user_group_map
WHERE group_id IN ($admin_group_ids)");
return if $admin_count;
my %answer = %{Bugzilla->installation_answers};
- my $login = $answer{'ADMIN_EMAIL'};
+ my $login = $answer{'ADMIN_LOGIN'};
+ my $email = $answer{'ADMIN_EMAIL'};
my $password = $answer{'ADMIN_PASSWORD'};
my $full_name = $answer{'ADMIN_REALNAME'};
- if (!$login || !$password || !$full_name) {
+ if (!($login || Bugzilla->params->{'use_email_as_login'})
+ || !$email
+ || !$password)
+ {
say "\n" . get_text('install_admin_setup') . "\n";
}
- while (!$login) {
+ while (!$email) {
print get_text('install_admin_get_email') . ' ';
+ $email = <STDIN>;
+ chomp $email;
+ eval { Bugzilla::User->check_email($email); };
+ if ($@) {
+ say $@;
+ undef $email;
+ }
+ }
+
+ # Make sure the email address is used as login when required.
+ if (Bugzilla->params->{'use_email_as_login'}) {
+ $login = $email;
+ }
+
+ while (!$login) {
+ print get_text('install_admin_get_login') . ' ';
$login = <STDIN>;
chomp $login;
eval { Bugzilla::User->check_login_name($login); };
@@ -349,7 +369,8 @@ sub create_admin {
get_text('install_admin_get_password'));
}
- my $admin = Bugzilla::User->create({ login_name => $login,
+ my $admin = Bugzilla::User->create({ login_name => $login,
+ email => $email,
realname => $full_name,
cryptpassword => $password });
make_admin($admin);