Commit 7cf69551 authored by mkanat%bugzilla.org's avatar mkanat%bugzilla.org

Bug 229049: Make LDAP authentication work when there are multiple mail= attributes for an account.

Patch By Emmanuel Seyman <eseyman@linagora.com> r=mkanat, a=mkanat
parent 4734e258
......@@ -37,6 +37,7 @@ use fields qw(
use Bugzilla::Constants;
use Bugzilla::Error;
use Bugzilla::User;
use Bugzilla::Util;
use Net::LDAP;
......@@ -90,7 +91,22 @@ sub check_credentials {
details => {attr => $mail_attr} };
}
$params->{bz_username} = $user_entry->get_value($mail_attr);
my @emails = $user_entry->get_value($mail_attr);
# Default to the first email address returned.
$params->{bz_username} = $emails[0];
if (@emails > 1) {
# Cycle through the adresses and check if they're Bugzilla logins.
# Use the first one that returns a valid id.
foreach my $email (@emails) {
if ( login_to_id($email) ) {
$params->{bz_username} = $email;
last;
}
}
}
} else {
$params->{bz_username} = $username;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment