From 07f5353454ce64657544640eca84dd06769dd8a3 Mon Sep 17 00:00:00 2001 From: Byron Jones Date: Fri, 6 Dec 2013 09:24:33 -0800 Subject: Bug 942029: review suggestions only shows the first mentor --- extensions/Review/lib/WebService.pm | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'extensions/Review/lib/WebService.pm') 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), -- cgit v1.2.3-24-g4f1b