summaryrefslogtreecommitdiffstats
path: root/extensions/Review/lib
diff options
context:
space:
mode:
authorByron Jones <bjones@mozilla.com>2013-12-06 18:24:33 +0100
committerByron Jones <bjones@mozilla.com>2013-12-06 18:24:33 +0100
commit07f5353454ce64657544640eca84dd06769dd8a3 (patch)
tree4176c277aada217cc365f0940d84692598c5cdc8 /extensions/Review/lib
parent5d5c9d240d31d9f19068272801f1ea9fe62b64e9 (diff)
downloadbugzilla-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.pm25
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),