Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 29 additions & 14 deletions Bugzilla/BugMail.pm
Original file line number Diff line number Diff line change
Expand Up @@ -317,17 +317,30 @@ sub Send {
Bugzilla::Hook::process('bugmail_referenced_bugs',
{updated_bug => $bug, referenced_bugs => $referenced_bugs});

# Reuse the already-filtered, hook-processed entry from $referenced_bugs
# for the blocker's short_desc. The blocker id was added to @referenced_bugs
# earlier; after visible_bugs filtering and bugmail_referenced_bugs hook
# processing above, its entry (if the user can see it) is already in
# $referenced_bugs with any SecureMail redaction applied.
my $blocker_short_desc;
if ($params->{dep_only}) {
my $blocker_id = $params->{blocker}->id;
my ($blocker_entry) = grep { $_->{id} == $blocker_id } @$referenced_bugs;
$blocker_short_desc = $blocker_entry->{short_desc} if $blocker_entry;
}

my $sent_mail = sendMail({
to => $user,
bug => $bug,
comments => $comments,
date => $date,
changer => $changer,
watchers => exists $watching{$user_id} ? $watching{$user_id} : undef,
diffs => \@diffs,
rels_which_want => \%rels_which_want,
referenced_bugs => $referenced_bugs,
dep_only => $params->{dep_only}
to => $user,
bug => $bug,
comments => $comments,
date => $date,
changer => $changer,
watchers => exists $watching{$user_id} ? $watching{$user_id} : undef,
diffs => \@diffs,
rels_which_want => \%rels_which_want,
referenced_bugs => $referenced_bugs,
dep_only => $params->{dep_only},
blocker_short_desc => $blocker_short_desc,
});
push(@sent, $user->login) if $sent_mail;
}
Expand Down Expand Up @@ -356,8 +369,9 @@ sub sendMail {
my $watchingRef = $params->{watchers};
my @diffs = @{$params->{diffs}};
my $relRef = $params->{rels_which_want};
my $referenced_bugs = $params->{referenced_bugs};
my $dep_only = $params->{dep_only};
my $referenced_bugs = $params->{referenced_bugs};
my $dep_only = $params->{dep_only};
my $blocker_short_desc = $params->{blocker_short_desc};
my $attach_id;

# Only display changes the user is allowed see.
Expand Down Expand Up @@ -457,8 +471,9 @@ sub sendMail {
changedfieldnames => \@changedfieldnames,
new_comments => \@send_comments,
threadingmarker => build_thread_marker($bug->id, $user->id, !$bug->lastdiffed),
referenced_bugs => $referenced_bugs,
bugmailtype => $bugmailtype,
referenced_bugs => $referenced_bugs,
bugmailtype => $bugmailtype,
blocker_short_desc => $blocker_short_desc,
};

if (Bugzilla->get_param_with_override('use_mailer_queue')) {
Expand Down
4 changes: 3 additions & 1 deletion extensions/BMO/template/en/default/email/bugmail.txt.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,9 @@ Product/Component: [%+ bug.product +%] :: [%+ bug.component %]
[% IF change.blocker %]
[% terms.Bug %] [%+ bug.id %] depends on [% terms.bug %] [%+ change.blocker.id %], which changed state.

[%+ terms.Bug %] [%+ change.blocker.id %] Summary: [% change.blocker.short_desc %]
[% IF blocker_short_desc.length -%]
[%+ terms.Bug %] [%+ change.blocker.id %] Summary: [% blocker_short_desc %]
[% END -%]
[%+ urlbase %]show_bug.cgi?id=[% change.blocker.id %]
[% ELSE %]
[%~ changer.identity %] changed:
Expand Down
23 changes: 0 additions & 23 deletions extensions/SecureMail/Extension.pm
Original file line number Diff line number Diff line change
Expand Up @@ -217,29 +217,6 @@ sub user_preferences {
$$handled = 1;
}

sub template_before_process {
my ($self, $args) = @_;
my $file = $args->{'file'};
my $vars = $args->{'vars'};

# Bug dependency emails contain the subject of the dependent bug
# right before the diffs when a status has gone from open/closed
# or closed/open. We need to sanitize the subject of change.blocker
# similar to how we do referenced bugs
return
unless $file eq 'email/bugmail.html.tmpl'
|| $file eq 'email/bugmail.txt.tmpl';

if (defined $vars->{diffs}) {
foreach my $change (@{$vars->{diffs}}) {
next if !defined $change->{blocker};
if (grep($_->secure_mail, @{$change->{blocker}->groups_in})) {
$change->{blocker}->{short_desc} = "(Secure bug)";
}
}
}
}

sub _send_test_email {
my ($user) = @_;
my $template = Bugzilla->template_inner($user->settings->{'lang'}->{'value'});
Expand Down
4 changes: 3 additions & 1 deletion template/en/default/email/bugmail.txt.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,9 @@ You are receiving this mail because:
[% IF change.blocker %]
[% terms.Bug %] [%+ bug.id %] depends on [% terms.bug %] [%+ change.blocker.id %], which changed state.

[%+ terms.Bug %] [%+ change.blocker.id %] Summary: [% change.blocker.short_desc %]
[% IF blocker_short_desc.defined -%]
[%+ terms.Bug %] [%+ change.blocker.id %] Summary: [% blocker_short_desc %]
[% END -%]
[%+ urlbase %]show_bug.cgi?id=[% change.blocker.id %]
[% ELSE %]
[%~ changer.identity %] changed:
Expand Down
Loading