diff options
author | Byron Jones <bjones@mozilla.com> | 2013-12-06 18:24:33 +0100 |
---|---|---|
committer | Byron Jones <bjones@mozilla.com> | 2013-12-06 18:24:33 +0100 |
commit | 07f5353454ce64657544640eca84dd06769dd8a3 (patch) | |
tree | 4176c277aada217cc365f0940d84692598c5cdc8 /extensions/Review/lib | |
parent | 5d5c9d240d31d9f19068272801f1ea9fe62b64e9 (diff) | |
download | bugzilla-07f5353454ce64657544640eca84dd06769dd8a3.tar.gz bugzilla-07f5353454ce64657544640eca84dd06769dd8a3.tar.xz |
Bug 942029: review suggestions only shows the first mentor
Diffstat (limited to 'extensions/Review/lib')
-rw-r--r-- | extensions/Review/lib/WebService.pm | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/extensions/Review/lib/WebService.pm b/extensions/Review/lib/WebService.pm index acce32d2b..4cb3d48d8 100644 --- a/extensions/Review/lib/WebService.pm +++ b/extensions/Review/lib/WebService.pm @@ -20,9 +20,9 @@ sub suggestions { my ($self, $params) = @_; my $dbh = Bugzilla->switch_to_shadow_db(); - my ($product, $component); + my ($bug, $product, $component); if (exists $params->{bug_id}) { - my $bug = Bugzilla::Bug->check($params->{bug_id}); + $bug = Bugzilla::Bug->check($params->{bug_id}); $product = $bug->product_obj; $component = $bug->component_obj; } @@ -38,16 +38,27 @@ sub suggestions { ThrowUserError("reviewer_suggestions_param_required"); } - my $reviewers = []; + my @reviewers; + if ($bug) { + # we always need to be authentiated to perform user matching + my $user = Bugzilla->user; + if (!$user->id) { + Bugzilla->set_user(Bugzilla::User->check({ name => 'nobody@mozilla.org' })); + push @reviewers, @{ $bug->mentors }; + Bugzilla->set_user($user); + } else { + push @reviewers, @{ $bug->mentors }; + } + } if ($component) { - $reviewers = $component->reviewers_objs; + push @reviewers, @{ $component->reviewers_objs }; } - if (!@$reviewers) { - $reviewers = $product->reviewers_objs; + if (!@{ $component->reviewers_objs }) { + push @reviewers, @{ $product->reviewers_objs }; } my @result; - foreach my $reviewer (@$reviewers) { + foreach my $reviewer (@reviewers) { push @result, { id => $self->type('int', $reviewer->id), email => $self->type('email', $reviewer->login), |