summaryrefslogtreecommitdiffstats
path: root/Bugzilla/WebService/User.pm
diff options
context:
space:
mode:
authorKoosha Khajeh Moogahi <koosha.khajeh@gmail.com>2012-10-04 10:00:04 +0200
committerByron Jones <bjones@mozilla.com>2012-10-04 10:00:04 +0200
commit341d9da398c18bb508ebeaeb9e415d844285c7a0 (patch)
treed40fbd9c8f43e47727dbc45ace99c747c0ece38b /Bugzilla/WebService/User.pm
parentafa65e7be0469b7ca78dc8ae824c9e51e06bd9f4 (diff)
downloadbugzilla-341d9da398c18bb508ebeaeb9e415d844285c7a0.tar.gz
bugzilla-341d9da398c18bb508ebeaeb9e415d844285c7a0.tar.xz
Bug 794125: Make User.get ignore duplicate groups for membership look ups
r=glob, a=LpSolit
Diffstat (limited to 'Bugzilla/WebService/User.pm')
-rw-r--r--Bugzilla/WebService/User.pm8
1 files changed, 5 insertions, 3 deletions
diff --git a/Bugzilla/WebService/User.pm b/Bugzilla/WebService/User.pm
index 5b54285c6..d49ad24a0 100644
--- a/Bugzilla/WebService/User.pm
+++ b/Bugzilla/WebService/User.pm
@@ -308,10 +308,12 @@ sub _filter_users_by_group {
@{ $group_ids || [] };
my @name_groups = map { Bugzilla::Group->check($_) }
@{ $group_names || [] };
- push(@groups, @name_groups);
-
+ my %unique_groups;
+ foreach my $group (@groups, @name_groups) {
+ $unique_groups{$group->id} ||= $group;
+ }
- my @in_group = grep { $self->_user_in_any_group($_, \@groups) }
+ my @in_group = grep { $self->_user_in_any_group($_, [values %unique_groups]) }
@$users;
return \@in_group;
}