From 5b3ea4d476084d47c99e3d2e9d409fea84c16831 Mon Sep 17 00:00:00 2001 From: Reed Loden Date: Tue, 26 Jun 2012 17:20:26 +0200 Subject: Bug 138546: Add a checkbox to add himself to the CC list when creating or editing an attachment r/a=LpSolit --- Bugzilla/Bug.pm | 24 ++++++++++++------------ attachment.cgi | 4 ++++ template/en/default/attachment/create.html.tmpl | 9 +++++++++ template/en/default/attachment/edit.html.tmpl | 12 ++++++++++-- template/en/default/bug/edit.html.tmpl | 7 +------ 5 files changed, 36 insertions(+), 20 deletions(-) diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 1bf5a11cd..3d9689aca 100644 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -3614,23 +3614,23 @@ sub user { return {} if $self->{'error'}; my $user = Bugzilla->user; - my $prod_id = $self->{'product_id'}; - my $unknown_privileges = $user->in_group('editbugs', $prod_id); - my $canedit = $unknown_privileges - || $user->id == $self->{'assigned_to'} - || (Bugzilla->params->{'useqacontact'} - && $self->{'qa_contact'} - && $user->id == $self->{'qa_contact'}); - my $canconfirm = $unknown_privileges - || $user->in_group('canconfirm', $prod_id); - my $isreporter = $user->id - && $user->id == $self->{reporter_id}; + my $editbugs = $user->in_group('editbugs', $prod_id); + my $is_reporter = $user->id == $self->{reporter_id} ? 1 : 0; + my $is_assignee = $user->id == $self->{'assigned_to'} ? 1 : 0; + my $is_qa_contact = Bugzilla->params->{'useqacontact'} + && $self->{'qa_contact'} + && $user->id == $self->{'qa_contact'} ? 1 : 0; + + my $canedit = $editbugs || $is_assignee || $is_qa_contact; + my $canconfirm = $editbugs || $user->in_group('canconfirm', $prod_id); + my $has_any_role = $is_reporter || $is_assignee || $is_qa_contact; $self->{'user'} = {canconfirm => $canconfirm, canedit => $canedit, - isreporter => $isreporter}; + isreporter => $is_reporter, + has_any_role => $has_any_role}; return $self->{'user'}; } diff --git a/attachment.cgi b/attachment.cgi index 92f48d05d..16c964e47 100755 --- a/attachment.cgi +++ b/attachment.cgi @@ -574,6 +574,8 @@ sub insert { $owner = $bug->assigned_to->login; $bug->set_assigned_to($user); } + + $bug->add_cc($user) if $cgi->param('addselfcc'); $bug->update($timestamp); $dbh->bz_commit_transaction; @@ -686,6 +688,8 @@ sub update { extra_data => $attachment->id }); } + $bug->add_cc($user) if $cgi->param('addselfcc'); + if ($can_edit) { my ($flags, $new_flags) = Bugzilla::Flag->extract_flags_from_cgi($bug, $attachment, $vars); diff --git a/template/en/default/attachment/create.html.tmpl b/template/en/default/attachment/create.html.tmpl index 97408deac..8f5477e23 100644 --- a/template/en/default/attachment/create.html.tmpl +++ b/template/en/default/attachment/create.html.tmpl @@ -92,6 +92,15 @@ TUI_hide_default('attachment_text_field'); cols = constants.COMMENT_COLS wrap = 'soft' %] + [% IF NOT bug.cc || NOT bug.cc.contains(user.login) %] +
+ + + [% END %] [% IF user.is_insider %] diff --git a/template/en/default/attachment/edit.html.tmpl b/template/en/default/attachment/edit.html.tmpl index c6ee527a5..2062e6d6c 100644 --- a/template/en/default/attachment/edit.html.tmpl +++ b/template/en/default/attachment/edit.html.tmpl @@ -253,10 +253,18 @@ minrows = 10 cols = 80 wrap = 'soft' - classes = classNames + classes = classNames %] + [% IF NOT attachment.bug.cc || NOT attachment.bug.cc.contains(user.login) %] + + + [% END %] - [% END %] + [% END %]
[% IF attachment.flag_types.size > 0 %] [% PROCESS "flag/list.html.tmpl" flag_types = attachment.flag_types diff --git a/template/en/default/bug/edit.html.tmpl b/template/en/default/bug/edit.html.tmpl index ba36d0a2f..9295e178c 100644 --- a/template/en/default/bug/edit.html.tmpl +++ b/template/en/default/bug/edit.html.tmpl @@ -722,15 +722,10 @@ [% IF user.id %] [% IF NOT bug.cc || NOT bug.cc.contains(user.login) %] - [% has_role = bug.user.isreporter - || bug.assigned_to.id == user.id - || (Param('useqacontact') - && bug.qa_contact - && bug.qa_contact.id == user.id) %]
-- cgit v1.2.3-24-g4f1b