use Bugzilla::Component;
use Bugzilla::Status;
use Bugzilla::Mailer;
+use Bugzilla::Hook;
use Date::Parse;
use Date::Format;
}
}
}
+
+ Bugzilla::Hook::process('bugmail_recipients',
+ { bug => $bug, recipients => \%recipients });
# Find all those user-watching anyone on the current list, who is not
# on it already themselves.
=back
+=head2 bugmail_recipients
+
+This allows you to modify the list of users who are going to be receiving
+a particular bugmail. It also allows you to specify why they are receiving
+the bugmail.
+
+Users' bugmail preferences will be applied to any users that you add
+to the list. (So, for example, if you add somebody as though they were
+a CC on the bug, and their preferences state that they don't get email
+when they are a CC, they won't get email.)
+
+This hook is called before watchers or globalwatchers are added to the
+recipient list.
+
+Params:
+
+=over
+
+=item C<bug>
+
+The L<Bugzilla::Bug> that bugmail is being sent about.
+
+=item C<recipients>
+
+This is a hashref. The keys are numeric user ids from the C<profiles>
+table in the database, for each user who should be receiving this bugmail.
+The values are hashrefs. The keys in I<these> hashrefs correspond to
+the "relationship" that the user has to the bug they're being emailed
+about, and the value should always be C<1>. The "relationships"
+are described by the various C<REL_> constants in L<Bugzilla::Constants>.
+
+Here's an example of adding userid C<123> to the recipient list
+as though he were on the CC list:
+
+ $recipients->{123}->{+REL_CC} = 1
+
+(We use C<+> in front of C<REL_CC> so that Perl interprets it as a constant
+instead of as a string.)
+
+=back
+
+
=head2 colchange_columns
This happens in F<colchange.cgi> right after the list of possible display
$columns->{'example'} = { 'name' => 'bugs.delta_ts' , 'title' => 'Example' };
}
+sub bugmail_recipients {
+ my ($self, $args) = @_;
+ my $recipients = $args->{recipients};
+ my $bug = $args->{bug};
+ if ($bug->id == 1) {
+ # Uncomment the line below to add the second user in the Bugzilla
+ # database to the recipients list of every bugmail sent out about
+ # bug 1 as though that user were on the CC list.
+ #$recipients->{2}->{+REL_CC} = 1;
+ }
+}
+
sub colchange_columns {
my ($self, $args) = @_;