[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