diff options
author | Koosha Khajeh Moogahi <koosha.khajeh@gmail.com> | 2012-10-04 16:00:04 +0800 |
---|---|---|
committer | Byron Jones <bjones@mozilla.com> | 2012-10-04 16:00:04 +0800 |
commit | 341d9da398c18bb508ebeaeb9e415d844285c7a0 (patch) | |
tree | d40fbd9c8f43e47727dbc45ace99c747c0ece38b /Bugzilla | |
parent | afa65e7be0469b7ca78dc8ae824c9e51e06bd9f4 (diff) | |
download | bugs-341d9da398c18bb508ebeaeb9e415d844285c7a0.tar bugs-341d9da398c18bb508ebeaeb9e415d844285c7a0.tar.gz bugs-341d9da398c18bb508ebeaeb9e415d844285c7a0.tar.bz2 bugs-341d9da398c18bb508ebeaeb9e415d844285c7a0.tar.xz bugs-341d9da398c18bb508ebeaeb9e415d844285c7a0.zip |
Bug 794125: Make User.get ignore duplicate groups for membership look ups
r=glob, a=LpSolit
Diffstat (limited to 'Bugzilla')
-rw-r--r-- | Bugzilla/WebService/User.pm | 8 |
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; } |