[Rt-commit] r17336 - in rt/3.8/trunk: . t/api
jesse at bestpractical.com
jesse at bestpractical.com
Wed Dec 24 14:23:38 EST 2008
Author: jesse
Date: Wed Dec 24 14:23:37 2008
New Revision: 17336
Modified:
rt/3.8/trunk/ (props changed)
rt/3.8/trunk/lib/RT/Ticket_Overlay.pm
rt/3.8/trunk/t/api/ticket.t
Log:
r56241 at 173-114-53-99: jesse | 2008-12-24 14:20:14 -0500
* Allow creation of tickets with squelched email recipients
Modified: rt/3.8/trunk/lib/RT/Ticket_Overlay.pm
==============================================================================
--- rt/3.8/trunk/lib/RT/Ticket_Overlay.pm (original)
+++ rt/3.8/trunk/lib/RT/Ticket_Overlay.pm Wed Dec 24 14:23:37 2008
@@ -204,6 +204,8 @@
Requestor - A reference to a list of email addresses or RT user Names
Cc - A reference to a list of email addresses or Names
AdminCc - A reference to a list of email addresses or Names
+ SquelchMailTo - A reference to a list of email addresses -
+ who should this ticket not mail
Type -- The ticket\'s type. ignore this for now
Owner -- This ticket\'s owner. either an RT::User object or this user\'s id
Subject -- A string describing the subject of the ticket
@@ -246,6 +248,7 @@
Requestor => undef,
Cc => undef,
AdminCc => undef,
+ SquelchMailTo => undef,
Type => 'ticket',
Owner => undef,
Subject => '',
@@ -544,8 +547,15 @@
push @non_fatal_errors, $self->loc("Couldn't set [_1] watcher: [_2]", $type, $msg)
unless $val;
}
+ }
+
+ if ($args{'SquelchMailTo'}) {
+ my @squelch = ref( $args{'SquelchMailTo'} ) ? @{ $args{'SquelchMailTo'} }
+ : $args{'SquelchMailTo'};
+ $self->_SquelchMailTo( @squelch );
}
+
# }}}
# {{{ Add all the custom fields
@@ -1287,14 +1297,22 @@
unless ( $self->CurrentUserHasRight('ModifyTicket') ) {
return undef;
}
- my $attr = shift;
- $self->AddAttribute( Name => 'SquelchMailTo', Content => $attr )
- unless grep { $_->Content eq $attr }
- $self->Attributes->Named('SquelchMailTo');
+ } else {
+ unless ( $self->CurrentUserHasRight('ShowTicket') ) {
+ return undef;
+ }
}
- unless ( $self->CurrentUserHasRight('ShowTicket') ) {
- return undef;
+ return $self->_SquelchMailTo(@_);
+}
+
+sub _SquelchMailTo {
+ my $self = shift;
+ if (@_) {
+ my $attr = shift;
+ $self->AddAttribute( Name => 'SquelchMailTo', Content => $attr )
+ unless grep { $_->Content eq $attr }
+ $self->Attributes->Named('SquelchMailTo');
}
my @attributes = $self->Attributes->Named('SquelchMailTo');
return (@attributes);
Modified: rt/3.8/trunk/t/api/ticket.t
==============================================================================
--- rt/3.8/trunk/t/api/ticket.t (original)
+++ rt/3.8/trunk/t/api/ticket.t Wed Dec 24 14:23:37 2008
@@ -2,8 +2,7 @@
use strict;
use warnings;
use Test::More;
-plan tests => 85;
-use Data::Dumper;
+plan tests => 87;
use RT;
use RT::Test;
@@ -155,12 +154,19 @@
{
my $t = RT::Ticket->new($RT::SystemUser);
-ok($t->Create(Queue => 'general', Subject => 'SquelchTest'));
+ok($t->Create(Queue => 'general', Subject => 'SquelchTest', SquelchMailTo => 'nobody at example.com'));
-is(scalar $t->SquelchMailTo, 0, "The ticket has no squelched recipients");
+my @returned = $t->SquelchMailTo();
+is($#returned, 0, "The ticket has one squelched recipients");
+
+my ($ret, $msg) = $t->UnsquelchMailTo('nobody at example.com');
+ok($ret, "Removed nobody as a squelched recipient - ".$msg);
+ at returned = $t->SquelchMailTo();
+is($#returned, -1, "The ticket has no squelched recipients". join(',', at returned));
-my @returned = $t->SquelchMailTo('nobody at example.com');
+
+ at returned = $t->SquelchMailTo('nobody at example.com');
is($#returned, 0, "The ticket has one squelched recipients");
my @names = $t->Attributes->Names;
More information about the Rt-commit
mailing list