From 1ae4394d6db37e7e39a58824d69271f8506a4e41 Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Thu, 9 Apr 2009 13:45:18 +0000 Subject: Bug 440259 (2nd attempt): User::match should be using Bugzilla::User->new_from_list - Patch by arbingersys r/a=LpSolit --- Bugzilla/User.pm | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'Bugzilla/User.pm') 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; } -- cgit v1.2.3-24-g4f1b