summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReed Loden <reed@reedloden.com>2010-07-06 02:44:13 +0200
committerReed Loden <reed@reedloden.com>2010-07-06 02:44:13 +0200
commit108eb83fae1e54f9746698246551e188dede26cb (patch)
treeda7596c3a7b9f33d7762c9865c9cc198f4feede4
parentba4585ae8a1c63a49e40461d2e2efc12bc75c58a (diff)
downloadbugzilla-108eb83fae1e54f9746698246551e188dede26cb.tar.gz
bugzilla-108eb83fae1e54f9746698246551e188dede26cb.tar.xz
Bug 554964 - Show if a user is a "Default CC" under the Product Responsibilities section of editusers.cgi.
[r=mkanat a=mkanat]
-rw-r--r--Bugzilla/Template.pm12
-rw-r--r--Bugzilla/User.pm11
-rw-r--r--template/en/default/admin/users/responsibilities.html.tmpl4
3 files changed, 21 insertions, 6 deletions
diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm
index 71ade2f01..4bd3d2d77 100644
--- a/Bugzilla/Template.pm
+++ b/Bugzilla/Template.pm
@@ -380,14 +380,22 @@ $Template::Stash::PRIVATE = undef;
$Template::Stash::LIST_OPS->{ contains } =
sub {
my ($list, $item) = @_;
- return grep($_ eq $item, @$list);
+ if (ref $item && $item->isa('Bugzilla::Object')) {
+ return grep($_->id == $item->id, @$list);
+ } else {
+ return grep($_ eq $item, @$list);
+ }
};
$Template::Stash::LIST_OPS->{ containsany } =
sub {
my ($list, $items) = @_;
foreach my $item (@$items) {
- return 1 if grep($_ eq $item, @$list);
+ if (ref $item && $item->isa('Bugzilla::Object')) {
+ return 1 if grep($_->id == $item->id, @$list);
+ } else {
+ return 1 if grep($_ eq $item, @$list);
+ }
}
return 0;
};
diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm
index cb3f75fa8..b9405e412 100644
--- a/Bugzilla/User.pm
+++ b/Bugzilla/User.pm
@@ -1152,11 +1152,14 @@ sub product_responsibilities {
return $self->{'product_resp'} if defined $self->{'product_resp'};
return [] unless $self->id;
- my $list = $dbh->selectall_arrayref('SELECT product_id, id
+ my $list = $dbh->selectall_arrayref('SELECT components.product_id, components.id
FROM components
- WHERE initialowner = ?
- OR initialqacontact = ?',
- {Slice => {}}, ($self->id, $self->id));
+ LEFT JOIN component_cc
+ ON components.id = component_cc.component_id
+ WHERE components.initialowner = ?
+ OR components.initialqacontact = ?
+ OR component_cc.user_id = ?',
+ {Slice => {}}, ($self->id, $self->id, $self->id));
unless ($list) {
$self->{'product_resp'} = [];
diff --git a/template/en/default/admin/users/responsibilities.html.tmpl b/template/en/default/admin/users/responsibilities.html.tmpl
index bbf121a26..5c9c3f317 100644
--- a/template/en/default/admin/users/responsibilities.html.tmpl
+++ b/template/en/default/admin/users/responsibilities.html.tmpl
@@ -29,6 +29,7 @@
<th>Component</th>
<th>Default Assignee</th>
<th>Default QA Contact</th>
+ <th>Default CC</th>
</tr>
[% FOREACH component = item.components %]
<tr>
@@ -48,6 +49,9 @@
[% component.$responsibility.id == otheruser.id ? "X" : "&nbsp;" %]
</td>
[% END %]
+ <td class="center">
+ [% component.initial_cc.contains(otheruser) ? "X" : "&nbsp;" %]
+ </td>
</tr>
[% END %]
</tbody>