diff options
author | Reed Loden <reed@reedloden.com> | 2010-07-06 02:44:13 +0200 |
---|---|---|
committer | Reed Loden <reed@reedloden.com> | 2010-07-06 02:44:13 +0200 |
commit | 108eb83fae1e54f9746698246551e188dede26cb (patch) | |
tree | da7596c3a7b9f33d7762c9865c9cc198f4feede4 | |
parent | ba4585ae8a1c63a49e40461d2e2efc12bc75c58a (diff) | |
download | bugzilla-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.pm | 12 | ||||
-rw-r--r-- | Bugzilla/User.pm | 11 | ||||
-rw-r--r-- | template/en/default/admin/users/responsibilities.html.tmpl | 4 |
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" : " " %] </td> [% END %] + <td class="center"> + [% component.initial_cc.contains(otheruser) ? "X" : " " %] + </td> </tr> [% END %] </tbody> |