diff options
-rw-r--r-- | Bugzilla/User.pm | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm index b6754c472..2a616a145 100644 --- a/Bugzilla/User.pm +++ b/Bugzilla/User.pm @@ -1017,7 +1017,7 @@ sub match { if ($wildstr =~ s/\*/\%/g) { # don't do wildcards if no '*' in the string # Build the query. trick_taint($wildstr); - my $query = "SELECT DISTINCT login_name FROM profiles "; + my $query = "SELECT DISTINCT userid FROM profiles "; if (Bugzilla->params->{'usevisibilitygroups'}) { $query .= "INNER JOIN user_group_map ON user_group_map.user_id = profiles.userid "; @@ -1031,15 +1031,12 @@ sub match { join(', ', (-1, @{$user->visible_groups_inherited})) . ") "; } $query .= " AND disabledtext = '' " if $exclude_disabled; - $query .= " ORDER BY login_name "; $query .= $dbh->sql_limit($limit) if $limit; # Execute the query, retrieve the results, and make them into # User objects. - my $user_logins = $dbh->selectcol_arrayref($query, undef, ($wildstr, $wildstr)); - foreach my $login_name (@$user_logins) { - push(@users, new Bugzilla::User({ name => $login_name })); - } + my $user_ids = $dbh->selectcol_arrayref($query, undef, ($wildstr, $wildstr)); + @users = @{Bugzilla::User->new_from_list($user_ids)}; } else { # try an exact match # Exact matches don't care if a user is disabled. @@ -1055,7 +1052,7 @@ sub match { if (!scalar(@users) && length($str) >= 3) { trick_taint($str); - my $query = "SELECT DISTINCT login_name FROM profiles "; + my $query = "SELECT DISTINCT userid FROM profiles "; if (Bugzilla->params->{'usevisibilitygroups'}) { $query .= "INNER JOIN user_group_map ON user_group_map.user_id = profiles.userid "; @@ -1069,13 +1066,9 @@ sub match { join(', ', (-1, @{$user->visible_groups_inherited})) . ") "; } $query .= " AND disabledtext = '' " if $exclude_disabled; - $query .= " ORDER BY login_name "; $query .= $dbh->sql_limit($limit) if $limit; - - my $user_logins = $dbh->selectcol_arrayref($query, undef, ($str, $str)); - foreach my $login_name (@$user_logins) { - push(@users, new Bugzilla::User({ name => $login_name })); - } + my $user_ids = $dbh->selectcol_arrayref($query, undef, ($str, $str)); + @users = @{Bugzilla::User->new_from_list($user_ids)}; } return \@users; } |