Patch By Emmanuel Seyman <eseyman@linagora.com> r=mkanat, a=mkanat
use Bugzilla::Constants;
use Bugzilla::Error;
+use Bugzilla::User;
use Bugzilla::Util;
use Net::LDAP;
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;
}