From 3891b63a1eb52076337885487f251a10580a4a85 Mon Sep 17 00:00:00 2001 From: Frédéric Buclin Date: Wed, 27 Apr 2016 18:50:13 +0200 Subject: Bug 218917 - Allow the login name to be different from the email address Original patch by Gervase Markham r=gerv a=dkl --- Bugzilla/Install.pm | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) (limited to 'Bugzilla/Install.pm') 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 = ; + 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 = ; 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); -- cgit v1.2.3-24-g4f1b