diff options
Diffstat (limited to 'editusers.cgi')
-rwxr-xr-x | editusers.cgi | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/editusers.cgi b/editusers.cgi index 37665b12d..a53701d70 100755 --- a/editusers.cgi +++ b/editusers.cgi @@ -72,7 +72,7 @@ if ($action eq 'search') { my $grouprestrict = $cgi->param('grouprestrict') || '0'; # 0 = disabled only, 1 = enabled only, 2 = everyone my $is_enabled = $cgi->param('is_enabled') // 2; - my $query = 'SELECT DISTINCT userid, login_name, realname, is_enabled, ' . + my $query = 'SELECT DISTINCT userid, login_name, realname, extern_id, is_enabled, ' . $dbh->sql_date_format('last_seen_date', '%Y-%m-%d') . ' AS last_seen_date ' . 'FROM profiles'; my @bindValues; @@ -129,6 +129,8 @@ if ($action eq 'search') { $expr = "profiles.userid"; } elsif ($matchvalue eq 'realname') { $expr = "profiles.realname"; + } elsif ($matchvalue eq 'extern_id') { + $expr = "profiles.extern_id"; } else { $expr = "profiles.login_name"; } @@ -158,13 +160,14 @@ if ($action eq 'search') { # Handle selection by group. if ($grouprestrict eq '1') { - my $grouplist = join(',', + my $direct_membership = $cgi->param('group_direct_membership'); + my $grouplist = $direct_membership ? $group->id : join(',', @{Bugzilla::Group->flatten_group_membership($group->id)}); $query .= " $nextCondition ugm.group_id IN($grouplist) "; } detaint_natural($is_enabled); - if ($is_enabled && ($is_enabled == 0 || $is_enabled == 1)) { + if (defined($is_enabled) && ($is_enabled == 0 || $is_enabled == 1)) { $query .= " $nextCondition profiles.is_enabled = ?"; $nextCondition = 'AND'; push(@bindValues, $is_enabled); |