summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Action/Notify.pm
diff options
context:
space:
mode:
Diffstat (limited to 'rt/lib/RT/Action/Notify.pm')
-rwxr-xr-xrt/lib/RT/Action/Notify.pm83
1 files changed, 58 insertions, 25 deletions
diff --git a/rt/lib/RT/Action/Notify.pm b/rt/lib/RT/Action/Notify.pm
index 6dca4fd..1e4e4c0 100755
--- a/rt/lib/RT/Action/Notify.pm
+++ b/rt/lib/RT/Action/Notify.pm
@@ -1,7 +1,31 @@
-#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Notify.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $
-
+# BEGIN LICENSE BLOCK
+#
+# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
+#
+# (Except where explictly superceded by other copyright notices)
+#
+# This work is made available to you under the terms of Version 2 of
+# the GNU General Public License. A copy of that license should have
+# been provided with this software, but in any event can be snarfed
+# from www.gnu.org.
+#
+# This work is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# Unless otherwise specified, all modifications, corrections or
+# extensions to this work which alter its source code become the
+# property of Best Practical Solutions, LLC when submitted for
+# inclusion in the work.
+#
+#
+# END LICENSE BLOCK
package RT::Action::Notify;
require RT::Action::SendEmail;
+
+use strict;
+use vars qw/@ISA/;
@ISA = qw(RT::Action::SendEmail);
# {{{ sub SetRecipients
@@ -9,14 +33,14 @@ require RT::Action::SendEmail;
=head2 SetRecipients
Sets the recipients of this meesage to Owner, Requestor, AdminCc, Cc or All.
-Explicitly B<does not> notify the creator of the transaction.
+Explicitly B<does not> notify the creator of the transaction by default
=cut
sub SetRecipients {
my $self = shift;
- $arg = $self->Argument;
+ my $arg = $self->Argument;
$arg =~ s/\bAll\b/Owner,Requestor,AdminCc,Cc/;
@@ -24,14 +48,14 @@ sub SetRecipients {
if ($arg =~ /\bOtherRecipients\b/) {
- if ($self->TransactionObj->Message->First) {
- push (@Cc, $self->TransactionObj->Message->First->GetHeader('RT-Send-Cc'));
- push (@Bcc, $self->TransactionObj->Message->First->GetHeader('RT-Send-Bcc'));
+ if ($self->TransactionObj->Attachments->First) {
+ push (@Cc, $self->TransactionObj->Attachments->First->GetHeader('RT-Send-Cc'));
+ push (@Bcc, $self->TransactionObj->Attachments->First->GetHeader('RT-Send-Bcc'));
}
}
if ( $arg =~ /\bRequestor\b/ ) {
- push ( @To, @{ $self->TicketObj->Requestors->Emails } );
+ push ( @To, $self->TicketObj->Requestors->MemberEmailAddresses );
}
@@ -40,12 +64,12 @@ sub SetRecipients {
#If we have a To, make the Ccs, Ccs, otherwise, promote them to To
if (@To) {
- push ( @Cc, @{ $self->TicketObj->Cc->Emails } );
- push ( @Cc, @{ $self->TicketObj->QueueObj->Cc->Emails } );
+ push ( @Cc, $self->TicketObj->Cc->MemberEmailAddresses );
+ push ( @Cc, $self->TicketObj->QueueObj->Cc->MemberEmailAddresses );
}
else {
- push ( @Cc, @{ $self->TicketObj->Cc->Emails } );
- push ( @To, @{ $self->TicketObj->QueueObj->Cc->Emails } );
+ push ( @Cc, $self->TicketObj->Cc->MemberEmailAddresses );
+ push ( @To, $self->TicketObj->QueueObj->Cc->MemberEmailAddresses );
}
}
@@ -65,15 +89,16 @@ sub SetRecipients {
}
if ( $arg =~ /\bAdminCc\b/ ) {
- push ( @Bcc, @{ $self->TicketObj->AdminCc->Emails } );
- push ( @Bcc, @{ $self->TicketObj->QueueObj->AdminCc->Emails } );
+ push ( @Bcc, $self->TicketObj->AdminCc->MemberEmailAddresses );
+ push ( @Bcc, $self->TicketObj->QueueObj->AdminCc->MemberEmailAddresses );
}
if ($RT::UseFriendlyToLine) {
unless (@To) {
- push ( @PseudoTo,
- "\"$arg of $RT::rtname Ticket #"
- . $self->TicketObj->id . "\":;" );
+ push (
+ @PseudoTo,
+ sprintf($RT::FriendlyToLineFormat, $arg, $self->TicketObj->id),
+ );
}
}
@@ -81,14 +106,17 @@ sub SetRecipients {
#Strip the sender out of the To, Cc and AdminCc and set the
# recipients fields used to build the message by the superclass.
-
- $RT::Logger->debug("$self: To is ".join(",",@To));
- $RT::Logger->debug("$self: Cc is ".join(",",@Cc));
- $RT::Logger->debug("$self: Bcc is ".join(",",@Bcc));
-
- @{ $self->{'To'} } = grep ( !/^$creator$/, @To );
- @{ $self->{'Cc'} } = grep ( !/^$creator$/, @Cc );
- @{ $self->{'Bcc'} } = grep ( !/^$creator$/, @Bcc );
+ # unless a flag is set
+ if ($RT::NotifyActor) {
+ @{ $self->{'To'} } = @To;
+ @{ $self->{'Cc'} } = @Cc;
+ @{ $self->{'Bcc'} } = @Bcc;
+ }
+ else {
+ @{ $self->{'To'} } = grep ( !/^$creator$/, @To );
+ @{ $self->{'Cc'} } = grep ( !/^$creator$/, @Cc );
+ @{ $self->{'Bcc'} } = grep ( !/^$creator$/, @Bcc );
+ }
@{ $self->{'PseudoTo'} } = @PseudoTo;
return (1);
@@ -96,4 +124,9 @@ sub SetRecipients {
# }}}
+eval "require RT::Action::Notify_Vendor";
+die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Notify_Vendor.pm});
+eval "require RT::Action::Notify_Local";
+die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Notify_Local.pm});
+
1;