[Rt-commit] r10782 - in rt/branches/3.999-DANGEROUS: . etc html/Admin/Queues html/Elements/RT__Model__Ticket html/REST/1.0/Forms/ticket html/REST/1.0/NoAuth html/Ticket html/Ticket/Elements lib/RT/Crypt lib/RT/Interface lib/RT/Model lib/RT/ScripAction t/api t/mail t/shredder

jesse at bestpractical.com jesse at bestpractical.com
Sat Feb 9 23:57:52 EST 2008


Author: jesse
Date: Sat Feb  9 23:57:48 2008
New Revision: 10782

Modified:
   rt/branches/3.999-DANGEROUS/   (props changed)
   rt/branches/3.999-DANGEROUS/etc/RT_Config.pm
   rt/branches/3.999-DANGEROUS/etc/config.yml
   rt/branches/3.999-DANGEROUS/etc/initialdata
   rt/branches/3.999-DANGEROUS/html/Admin/Queues/People.html
   rt/branches/3.999-DANGEROUS/html/Elements/RT__Model__Ticket/ColumnMap
   rt/branches/3.999-DANGEROUS/html/REST/1.0/Forms/ticket/default
   rt/branches/3.999-DANGEROUS/html/REST/1.0/NoAuth/mail-gateway
   rt/branches/3.999-DANGEROUS/html/Ticket/Create.html
   rt/branches/3.999-DANGEROUS/html/Ticket/Elements/EditPeople
   rt/branches/3.999-DANGEROUS/html/Ticket/Elements/ShowPeople
   rt/branches/3.999-DANGEROUS/html/Ticket/Elements/ShowRequestor
   rt/branches/3.999-DANGEROUS/lib/RT/Crypt/GnuPG.pm
   rt/branches/3.999-DANGEROUS/lib/RT/Interface/Email.pm
   rt/branches/3.999-DANGEROUS/lib/RT/Model/Queue.pm
   rt/branches/3.999-DANGEROUS/lib/RT/Model/Template.pm
   rt/branches/3.999-DANGEROUS/lib/RT/Model/Ticket.pm
   rt/branches/3.999-DANGEROUS/lib/RT/ScripAction/Autoreply.pm
   rt/branches/3.999-DANGEROUS/lib/RT/ScripAction/CreateTickets.pm
   rt/branches/3.999-DANGEROUS/lib/RT/ScripAction/Notify.pm
   rt/branches/3.999-DANGEROUS/t/api/ticket.t
   rt/branches/3.999-DANGEROUS/t/api/user.t
   rt/branches/3.999-DANGEROUS/t/mail/gateway.t
   rt/branches/3.999-DANGEROUS/t/shredder/02group_member.t
   rt/branches/3.999-DANGEROUS/t/ticket/deffered_owner.t
   rt/branches/3.999-DANGEROUS/t/ticket/requestor-order.t

Log:
 r27555 at 31b:  jesse | 2008-02-09 23:56:27 -0500
 * starting to refactor roles to a single codepath


Modified: rt/branches/3.999-DANGEROUS/etc/RT_Config.pm
==============================================================================
--- rt/branches/3.999-DANGEROUS/etc/RT_Config.pm	(original)
+++ rt/branches/3.999-DANGEROUS/etc/RT_Config.pm	Sat Feb  9 23:57:48 2008
@@ -737,7 +737,7 @@
 # {{{ Deprecated options
 
 # $AlwaysUsebase64 - Encode blobs as base64 in DB (?)
-# $Ticketbase_uri - base URI to tickets in this system; used when loading (?)
+# $ticket_base_uri - base URI to tickets in this system; used when loading (?)
 # $UseCodeTickets - This option is exists for backwards compatibility.  Don't use it.
 
 # }}}

Modified: rt/branches/3.999-DANGEROUS/etc/config.yml
==============================================================================
--- rt/branches/3.999-DANGEROUS/etc/config.yml	(original)
+++ rt/branches/3.999-DANGEROUS/etc/config.yml	Sat Feb  9 23:57:48 2008
@@ -8,11 +8,11 @@
   Database: 
     CheckSchema: 0
     Database: rt4
-    Driver: Pg
+    Driver: SQLite
     Host: localhost
     password: ''
     RecordBaseClass: Jifty::DBI::Record::Cachable
-    User: postgres
+    User: root
     Version: 0.0.1
   DevelMode: 1
   L10N: 

Modified: rt/branches/3.999-DANGEROUS/etc/initialdata
==============================================================================
--- rt/branches/3.999-DANGEROUS/etc/initialdata	(original)
+++ rt/branches/3.999-DANGEROUS/etc/initialdata	Sat Feb  9 23:57:48 2008
@@ -271,7 +271,7 @@
        Queue: {$ticket->queue_obj->name}
      Subject: {$transaction->subject || $ticket->subject || "(No subject given)"}
        owner: {$ticket->owner_obj->name}
-  requestors: {$ticket->requestor_addresses}
+  requestors: {$ticket->role_group("requestor")->member_emails_as_string}
       Status: {$ticket->status}
  Ticket <URL: {RT->config->get(\'WebURL\')}/Ticket/Display.html?id={$ticket->id} >
 

Modified: rt/branches/3.999-DANGEROUS/html/Admin/Queues/People.html
==============================================================================
--- rt/branches/3.999-DANGEROUS/html/Admin/Queues/People.html	(original)
+++ rt/branches/3.999-DANGEROUS/html/Admin/Queues/People.html	Sat Feb  9 23:57:48 2008
@@ -66,11 +66,11 @@
 
 <&|/l&>Cc</&>:
 
-<& /Admin/Elements/EditQueueWatchers, queue_obj => $queue_obj, Watchers => $queue_obj->cc &>
+<& /Admin/Elements/EditQueueWatchers, queue_obj => $queue_obj, Watchers => $queue_obj->role_group("cc") &>
 
 <&|/l&>Administrative Cc</&>:
 
-<& /Admin/Elements/EditQueueWatchers, queue_obj => $queue_obj, Watchers => $queue_obj->admin_cc &>
+<& /Admin/Elements/EditQueueWatchers, queue_obj => $queue_obj, Watchers => $queue_obj->role_group("admin_cc") &>
 
 
 </td>

Modified: rt/branches/3.999-DANGEROUS/html/Elements/RT__Model__Ticket/ColumnMap
==============================================================================
--- rt/branches/3.999-DANGEROUS/html/Elements/RT__Model__Ticket/ColumnMap	(original)
+++ rt/branches/3.999-DANGEROUS/html/Elements/RT__Model__Ticket/ColumnMap	Sat Feb  9 23:57:48 2008
@@ -154,15 +154,15 @@
     },
     requestors => {
         attribute => 'Requestor.email',
-        value => sub  { return $_[0]->requestors->member_emails_as_string }
+        value => sub  { return $_[0]->role_group("requestor")->member_emails_as_string }
     },
     Cc => {
         attribute => 'Cc.email',
-        value => sub  { return $_[0]->cc->member_emails_as_string }
+        value => sub  { return $_[0]->role_group("cc")->member_emails_as_string }
     },
     AdminCc => {
         attribute => 'AdminCc.email',
-        value => sub  { return $_[0]->admin_cc->member_emails_as_string }
+        value => sub  { return $_[0]->role_group("admin_cc")->member_emails_as_string }
     },
     startsRelative => {
         title     => 'starts',
@@ -230,7 +230,7 @@
         attribute => 'Requestor.email',
         value => sub  {
             my $t = shift;
-            my @requestors = $t->requestors->member_emails;
+            my @requestors = $t->role_group("requestor")->member_emails;
             for my $email (@requestors)
             {
                 my %key = RT::Crypt::GnuPG::get_key_info($email);

Modified: rt/branches/3.999-DANGEROUS/html/REST/1.0/Forms/ticket/default
==============================================================================
--- rt/branches/3.999-DANGEROUS/html/REST/1.0/Forms/ticket/default	(original)
+++ rt/branches/3.999-DANGEROUS/html/REST/1.0/Forms/ticket/default	Sat Feb  9 23:57:48 2008
@@ -193,7 +193,8 @@
 
     foreach $key (@people) {
         next unless (!%$fields || (exists $fields->{lc $key}));
-        push @data, [ ucfirst $key => [ $ticket->$key->member_emails ] ];
+        
+        push @data, [ ucfirst $key => [ $ticket->role_group($key eq 'requestors' ? 'requestor' : $key)->member_emails ] ];
     }
 
     $time = RT::Date->new();
@@ -271,10 +272,10 @@
         elsif (exists $people{$key}) {
             $key = $people{$key};
             my ($p, @msgs);
+            my $type = $key eq 'requestors' ? 'requestor' : $key;
 
             my %new  = map {$_=>1} @{ vsplit($val) };
-            my %old  = map {$_=>1} $ticket->$key->member_emails;
-            my $type = $key eq 'requestors' ? 'requestor' : $key;
+            my %old  = map {$_=>1} $ticket->role_group($type)->member_emails;
 
             foreach $p (keys %old) {
                 unless (exists $new{$p}) {

Modified: rt/branches/3.999-DANGEROUS/html/REST/1.0/NoAuth/mail-gateway
==============================================================================
--- rt/branches/3.999-DANGEROUS/html/REST/1.0/NoAuth/mail-gateway	(original)
+++ rt/branches/3.999-DANGEROUS/html/REST/1.0/NoAuth/mail-gateway	Sat Feb  9 23:57:48 2008
@@ -70,7 +70,7 @@
     $m->out( 'Status: '  . ($ticket_obj->status         || '') );
     $m->out( 'Subject: ' . ($ticket_obj->subject        || '') );
     $m->out(
-      'Requestor: ' . ($ticket_obj->requestors->member_emails_as_string || '') );
+      'Requestor: ' . ($ticket_obj->role_group("requestor")->member_emails_as_string || '') );
   }
 }
 else {

Modified: rt/branches/3.999-DANGEROUS/html/Ticket/Create.html
==============================================================================
--- rt/branches/3.999-DANGEROUS/html/Ticket/Create.html	(original)
+++ rt/branches/3.999-DANGEROUS/html/Ticket/Create.html	Sat Feb  9 23:57:48 2008
@@ -249,9 +249,9 @@
     $cloneticket_obj->load($cloneTicket) or abort(_("Ticket could not be loaded"));
     
     my $clone = {
-        Requestors       => join( ',', $cloneticket_obj->requestor_addresses ),
-        Cc               => join( ',', $cloneticket_obj->cc_addresses),
-        AdminCc          => join( ',', $cloneticket_obj->admin_cc_addresses),
+        Requestors       => join( ',', $cloneticket_obj->role_group("requestor")->member_emails_as_string ),
+        Cc               => join( ',', $cloneticket_obj->role_group("cc")->member_emails_as_string),
+        AdminCc          => join( ',', $cloneticket_obj->role_group("admin_cc")->member_emails_as_string),
         initial_priority => $cloneticket_obj->priority, 
     };
     

Modified: rt/branches/3.999-DANGEROUS/html/Ticket/Elements/EditPeople
==============================================================================
--- rt/branches/3.999-DANGEROUS/html/Ticket/Elements/EditPeople	(original)
+++ rt/branches/3.999-DANGEROUS/html/Ticket/Elements/EditPeople	Sat Feb  9 23:57:48 2008
@@ -69,13 +69,13 @@
 <&|/l&>(Check box to delete)</&><br />
 
 <&|/l&>Requestors</&>:
-<& EditWatchers, ticket_obj => $Ticket, Watchers => $Ticket->requestors &>
+<& EditWatchers, ticket_obj => $Ticket, Watchers => $Ticket->role_group("requestor") &>
 
 <&|/l&>Cc</&>:
-<& EditWatchers, ticket_obj => $Ticket, Watchers => $Ticket->cc &>
+<& EditWatchers, ticket_obj => $Ticket, Watchers => $Ticket->role_group("cc") &>
 
 <&|/l&>Administrative Cc</&>:
-<& EditWatchers, ticket_obj => $Ticket, Watchers => $Ticket->admin_cc &>
+<& EditWatchers, ticket_obj => $Ticket, Watchers => $Ticket->role_group("admin_cc") &>
 
 </td>
 </tr>

Modified: rt/branches/3.999-DANGEROUS/html/Ticket/Elements/ShowPeople
==============================================================================
--- rt/branches/3.999-DANGEROUS/html/Ticket/Elements/ShowPeople	(original)
+++ rt/branches/3.999-DANGEROUS/html/Ticket/Elements/ShowPeople	Sat Feb  9 23:57:48 2008
@@ -52,15 +52,15 @@
   </tr>
   <tr>
     <td class="labeltop"><&|/l&>Requestors</&>:</td>
-    <td class="value"><& ShowGroupMembers, Group => $Ticket->requestors, Ticket => $Ticket &></td>
+    <td class="value"><& ShowGroupMembers, Group => $Ticket->role_group("requestor"), Ticket => $Ticket &></td>
   </tr>
   <tr>
     <td class="labeltop"><&|/l&>Cc</&>:</td>
-    <td class="value"><& ShowGroupMembers, Group => $Ticket->cc, Ticket => $Ticket &></td>
+    <td class="value"><& ShowGroupMembers, Group => $Ticket->role_group("cc"), Ticket => $Ticket &></td>
   </tr>
   <tr>
     <td class="labeltop"><&|/l&>AdminCc</&>:</td>
-    <td class="value"><& ShowGroupMembers, Group => $Ticket->admin_cc, Ticket => $Ticket &></td>
+    <td class="value"><& ShowGroupMembers, Group => $Ticket->role_group("admin_cc"), Ticket => $Ticket &></td>
   </tr>
 </table>
 <%ARGS>

Modified: rt/branches/3.999-DANGEROUS/html/Ticket/Elements/ShowRequestor
==============================================================================
--- rt/branches/3.999-DANGEROUS/html/Ticket/Elements/ShowRequestor	(original)
+++ rt/branches/3.999-DANGEROUS/html/Ticket/Elements/ShowRequestor	Sat Feb  9 23:57:48 2008
@@ -48,7 +48,7 @@
 <%PERL>
 my $rows = 10;
 my $has_right_adminusers = Jifty->web->current_user->has_right(object => RT->system, right => 'AdminUsers');
-my $people = $Ticket->requestors->user_members_obj;
+my $people = $Ticket->role_group("requestor")->user_members_obj;
 while ( my $requestor = $people->next ) {
     next if $requestor->privileged;
     my $name = $m->scomp('/Elements/ShowUser', User => $requestor);

Modified: rt/branches/3.999-DANGEROUS/lib/RT/Crypt/GnuPG.pm
==============================================================================
--- rt/branches/3.999-DANGEROUS/lib/RT/Crypt/GnuPG.pm	(original)
+++ rt/branches/3.999-DANGEROUS/lib/RT/Crypt/GnuPG.pm	Sat Feb  9 23:57:48 2008
@@ -477,7 +477,6 @@
 
     my %res;
     if ( $args{'sign'} && !$args{'encrypt'} ) {
-    warn "Signing, not encrypting";
         # required by RFC3156(Ch. 5) and RFC1847(Ch. 2.1)
         $entity->head->mime_attr(
             'Content-Transfer-Encoding' => 'quoted-printable' );
@@ -1453,7 +1452,7 @@
         close $handle{$_};
     }
     Jifty->log->debug( $res{'status'} )  if $res{'status'};
-    Jifty->log->warning( $res{'error'} ) if $res{'error'};
+    Jifty->log->warn( $res{'error'} ) if $res{'error'};
     Jifty->log->error( $res{'logger'} )  if $res{'logger'} && $?;
 
     # if the decryption is fine but the signature is bad, then without this

Modified: rt/branches/3.999-DANGEROUS/lib/RT/Interface/Email.pm
==============================================================================
--- rt/branches/3.999-DANGEROUS/lib/RT/Interface/Email.pm	(original)
+++ rt/branches/3.999-DANGEROUS/lib/RT/Interface/Email.pm	Sat Feb  9 23:57:48 2008
@@ -75,7 +75,6 @@
         &check_for_auto_generated
         &check_for_bounce
         &mail_error
-        &parse_cc_addresses_from_head
         &parse_sender_address_from_head
         &parse_errors_to_address_from_head
         &parse_address_from_header
@@ -829,7 +828,7 @@
     return $CurrentUser;
 }
 
-=head2 parse_cc_addresses_from_head HASH
+=head2 parse_cc->member_emails_as_string_from_head HASH
 
 Takes a hash containing queue_obj, Head and current_user objects.
 Returns a list of all email addresses in the To and Cc

Modified: rt/branches/3.999-DANGEROUS/lib/RT/Model/Queue.pm
==============================================================================
--- rt/branches/3.999-DANGEROUS/lib/RT/Model/Queue.pm	(original)
+++ rt/branches/3.999-DANGEROUS/lib/RT/Model/Queue.pm	Sat Feb  9 23:57:48 2008
@@ -139,7 +139,7 @@
 
     Watch => 'Sign up as a ticket Requestor or ticket or queue Cc', # loc_pair
     WatchAsAdminCc  => 'Sign up as a ticket or queue AdminCc',      # loc_pair
-    CreateTicket   => 'Create tickets in this queue',              # loc_pair
+    CreateTicket    => 'Create tickets in this queue',              # loc_pair
     ReplyToTicket   => 'Reply to tickets',                          # loc_pair
     CommentOnTicket => 'comment on tickets',                        # loc_pair
     OwnTicket       => 'Own tickets',                               # loc_pair
@@ -355,7 +355,7 @@
         comment_address    => '',
         initial_priority   => 0,
         final_priority     => 0,
-        default_due_in       => 0,
+        default_due_in     => 0,
         sign               => undef,
         encrypt            => undef,
         @_
@@ -969,97 +969,24 @@
 
 # }}}
 
-# {{{ admin_cc_addresses
+=head2 role_group $role
 
-=head2 admin_cc_addresses
-
-returns String: All queue AdminCc email addresses as a string
-
-=cut
-
-sub admin_cc_addresses {
-    my $self = shift;
-
-    unless ( $self->current_user_has_right('SeeQueue') ) {
-        return undef;
-    }
-
-    return ( $self->admin_cc->member_emails_as_string )
-
-}
-
-# }}}
-
-# {{{ CcAddresses
-
-=head2 CcAddresses
-
-returns String: All queue Ccs as a string of email addresses
-
-=cut
-
-sub cc_addresses {
-    my $self = shift;
-
-    unless ( $self->current_user_has_right('SeeQueue') ) {
-        return undef;
-    }
-
-    return ( $self->cc->member_emails_as_string );
-
-}
-
-# }}}
-
-# {{{ sub Cc
-
-=head2 Cc
-
-Takes nothing.
-Returns an RT::Model::Group object which contains this Queue's Ccs.
-If the user doesn't have "ShowQueue" permission, returns an empty group
-
-=cut
-
-sub cc {
-    my $self = shift;
-
-    my $group = RT::Model::Group->new;
-    if ( $self->current_user_has_right('SeeQueue') ) {
-        $group->load_queue_role_group( type => 'Cc', queue => $self->id );
-    }
-    return ($group);
-
-}
-
-# }}}
-
-# {{{ sub AdminCc
-
-=head2 AdminCc
-
-Takes nothing.
-Returns an RT::Model::Group object which contains this Queue's AdminCcs.
+Returns an RT::Model::Group object.
 If the user doesn't have "ShowQueue" permission, returns an empty group
 
 =cut
 
-sub admin_cc {
-    my $self = shift;
-
+sub role_group {
+    my $self  = shift;
+    my $role  = shift;
     my $group = RT::Model::Group->new;
     if ( $self->current_user_has_right('SeeQueue') ) {
-        $group->load_queue_role_group(
-            type  => 'admin_cc',
-            queue => $self->id
-        );
+        $group->load_queue_role_group( type => $role, queue => $self->id );
     }
     return ($group);
 
 }
 
-# }}}
-
 # {{{ IsWatcher, IsCc, is_admin_cc
 
 # {{{ sub IsWatcher

Modified: rt/branches/3.999-DANGEROUS/lib/RT/Model/Template.pm
==============================================================================
--- rt/branches/3.999-DANGEROUS/lib/RT/Model/Template.pm	(original)
+++ rt/branches/3.999-DANGEROUS/lib/RT/Model/Template.pm	Sat Feb  9 23:57:48 2008
@@ -351,7 +351,7 @@
     $args{'transaction'} = delete $args{'transaction_obj'}
         if $args{'transaction_obj'};
     $args{'requestor'}
-        = eval { $args{'ticket'}->requestors->user_members_obj->first->name }
+        = eval { $args{'ticket'}->role_group("requestor")->user_members_obj->first->name }
         if $args{'ticket'};
     $args{'rtname'} = RT->config->get('rtname');
     if ( $args{'ticket'} ) {

Modified: rt/branches/3.999-DANGEROUS/lib/RT/Model/Ticket.pm
==============================================================================
--- rt/branches/3.999-DANGEROUS/lib/RT/Model/Ticket.pm	(original)
+++ rt/branches/3.999-DANGEROUS/lib/RT/Model/Ticket.pm	Sat Feb  9 23:57:48 2008
@@ -217,8 +217,8 @@
 #TODO modify this routine to look at effective_id and do the recursive load
 # thing. be careful to cache all the interim tickets we try so we don't loop forever.
 
-    # FIXME: there is no Ticketbase_uri option in config
-    my $base_uri = RT->config->get('Ticketbase_uri') || '';
+    # FIXME: there is no ticket_base_uri option in config
+    my $base_uri = RT->config->get('ticket_base_uri') || '';
 
     #If it's a local URI, turn it into a ticket id
     if ( $base_uri && $id =~ /^$base_uri(\d+)$/ ) {
@@ -273,8 +273,8 @@
     my $self = shift;
     my $uri  = shift;
 
-    # FIXME: there is no Ticketbase_uri option in config
-    my $base_uri = RT->config->get('Ticketbase_uri');
+    # FIXME: there is no ticket_base_uri option in config
+    my $base_uri = RT->config->get('ticket_base_uri');
     if ( $base_uri && $uri =~ /^$base_uri(\d+)$/ ) {
         my $id = $1;
         return $self->load($id);
@@ -604,7 +604,7 @@
 # Set the owner in the Groups table
 # We denormalize it into the Ticket table too because doing otherwise would
 # kill performance, bigtime. It gets kept in lockstep thanks to the magic of transactionalization
-    ( $val, $msg ) = $self->owner_group->_add_member(
+    ( $val, $msg ) = $self->role_group("owner")->_add_member(
         principal_id      => $owner->principal_id,
         inside_transaction => 1
     ) unless $defer_owner;
@@ -736,7 +736,7 @@
             $self->__set( column => 'owner', value => $owner->id );
 
         }
-        $self->owner_group->_add_member(
+        $self->role_group("owner")->_add_member(
             principal_id      => $owner->principal_id,
             inside_transaction => 1
         );
@@ -825,10 +825,7 @@
             type     => $type
         );
         unless ($id) {
-            Jifty->log->error(
-                "Couldn't create a ticket group of type '$type' for ticket "
-                    . $self->id . ": "
-                    . $msg );
+            Jifty->log->error( "Couldn't create a ticket group of type '$type' for ticket " . $self->id . ": " . $msg );
             return (undef);
         }
     }
@@ -838,22 +835,22 @@
 
 # }}}
 
-# {{{ sub owner_group
 
-=head2 owner_group
+=head2 role_group("$role")
 
 A constructor which returns an RT::Model::Group object containing the owner of this ticket.
 
 =cut
 
-sub owner_group {
+sub role_group {
     my $self      = shift;
-    my $owner_obj = RT::Model::Group->new;
-    $owner_obj->load_ticket_role_group(
+    my $obj = RT::Model::Group->new;
+    my $role = shift;
+    $obj->load_ticket_role_group(
         ticket => $self->id,
-        type   => 'owner'
+        type   => $role
     );
-    return ($owner_obj);
+    return ($obj);
 }
 
 # }}}
@@ -1207,131 +1204,8 @@
 
 # {{{ a set of  [foo]AsString subs that will return the various sorts of watchers for a ticket/queue as a comma delineated string
 
-=head2 requestor_addresses
-
- B<Returns> String: All Ticket requestor email addresses as a string.
-
-=cut
-
-sub requestor_addresses {
-    my $self = shift;
-
-    unless ( $self->current_user_has_right('ShowTicket') ) {
-        return undef;
-    }
-
-    return ( $self->requestors->member_emails_as_string );
-}
-
-=head2 admin_cc_addresses
-
-returns String: All Ticket admin_cc email addresses as a string
-
-=cut
-
-sub admin_cc_addresses {
-    my $self = shift;
-
-    unless ( $self->current_user_has_right('ShowTicket') ) {
-        return undef;
-    }
-
-    return ( $self->admin_cc->member_emails_as_string )
-
-}
-
-=head2 cc_addresses
-
-returns String: All Ticket ccs as a string of email addresses
-
-=cut
-
-sub cc_addresses {
-    my $self = shift;
-
-    unless ( $self->current_user_has_right('ShowTicket') ) {
-        return undef;
-    }
-    return ( $self->cc->member_emails_as_string );
-
-}
-
-# }}}
-
 # {{{ Routines that return RT::Watchers objects of requestors, ccs and admin_ccs
 
-# {{{ sub requestors
-
-=head2 requestors
-
-Takes nothing.
-Returns this ticket's requestors as an RT::Model::Group object
-
-=cut
-
-sub requestors {
-    my $self = shift;
-
-    my $group = RT::Model::Group->new;
-    if ( $self->current_user_has_right('ShowTicket') ) {
-        $group->load_ticket_role_group(
-            type   => 'requestor',
-            ticket => $self->id
-        );
-    }
-    return ($group);
-
-}
-
-# }}}
-
-# {{{ sub cc
-
-=head2 cc
-
-Takes nothing.
-Returns an RT::Model::Group object which contains this ticket's ccs.
-If the user doesn't have "ShowTicket" permission, returns an empty group
-
-=cut
-
-sub cc {
-    my $self = shift;
-
-    my $group = RT::Model::Group->new;
-    if ( $self->current_user_has_right('ShowTicket') ) {
-        $group->load_ticket_role_group( type => 'cc', ticket => $self->id );
-    }
-    return ($group);
-
-}
-
-# }}}
-
-# {{{ sub admin_cc
-
-=head2 admin_cc
-
-Takes nothing.
-Returns an RT::Model::Group object which contains this ticket's admin_ccs.
-If the user doesn't have "ShowTicket" permission, returns an empty group
-
-=cut
-
-sub admin_cc {
-    my $self  = shift;
-    my $group = RT::Model::Group->new;
-    if ( $self->current_user_has_right('ShowTicket') ) {
-        $group->load_ticket_role_group(
-            type   => 'admin_cc',
-            ticket => $self->id
-        );
-    }
-    return ($group);
-
-}
-
-# }}}
 
 # }}}
 
@@ -2482,26 +2356,18 @@
     }
 
     #add all of this ticket's watchers to that ticket.
-    foreach my $watcher_type qw(requestors cc admin_cc) {
-        # XXX: artefact of API change
-        my $method = $watcher_type;
-        $method =~ s/(?<=[a-z])(?=[A-Z])/_/;
-        $method = lc $method;
-
-        my $people          = $self->$method->members_obj;
-        my $addwatcher_type = $watcher_type;
-        $addwatcher_type =~ s/s$//;
+    foreach my $watcher_type qw(requestor cc admin_cc) {
+
+        my $people          = $self->role_group($watcher_type)->members_obj;
 
         while ( my $watcher = $people->next ) {
 
             my ( $val, $msg ) = $MergeInto->_add_watcher(
-                type         => $addwatcher_type,
+                type         => $watcher_type,
                 silent       => 1,
                 principal_id => $watcher->member_id
             );
-            unless ($val) {
-                Jifty->log->warn($msg);
-            }
+                Jifty->log->warn($msg) unless ($val) ;
         }
 
     }
@@ -2674,12 +2540,12 @@
     # Delete the owner in the owner group, then add a new one
     # TODO: is this safe? it's not how we really want the API to work
     # for most things, but it's fast.
-    my ( $del_id, ) = $self->owner_group->members_obj->first->delete();
+    my ( $del_id, ) = $self->role_group("owner")->members_obj->first->delete();
     unless ($del_id) {
         Jifty->handle->rollback();
         return ( 0, _("Could not change owner. ") . $del_id );
     }
-    my ( $add_id, $add_msg ) = $self->owner_group->_add_member(
+    my ( $add_id, $add_msg ) = $self->role_group("owner")->_add_member(
         principal_id      => $new_owner_obj->principal_id,
         inside_transaction => 1
     );

Modified: rt/branches/3.999-DANGEROUS/lib/RT/ScripAction/Autoreply.pm
==============================================================================
--- rt/branches/3.999-DANGEROUS/lib/RT/ScripAction/Autoreply.pm	(original)
+++ rt/branches/3.999-DANGEROUS/lib/RT/ScripAction/Autoreply.pm	Sat Feb  9 23:57:48 2008
@@ -75,7 +75,7 @@
 sub set_recipients {
     my $self = shift;
 
-    push( @{ $self->{'To'} }, $self->ticket_obj->requestors->member_emails );
+    push( @{ $self->{'To'} }, $self->ticket_obj->role_group("requestor")->member_emails );
 
     return (1);
 }

Modified: rt/branches/3.999-DANGEROUS/lib/RT/ScripAction/CreateTickets.pm
==============================================================================
--- rt/branches/3.999-DANGEROUS/lib/RT/ScripAction/CreateTickets.pm	(original)
+++ rt/branches/3.999-DANGEROUS/lib/RT/ScripAction/CreateTickets.pm	Sat Feb  9 23:57:48 2008
@@ -745,7 +745,7 @@
         $args{$date} = $dateobj->iso;
     }
 
-    $args{'requestor'} ||= $self->ticket_obj->requestors->member_emails
+    $args{'requestor'} ||= $self->ticket_obj->role_group("requestor")->member_emails
         if $self->ticket_obj;
 
     $args{'type'} ||= 'ticket';
@@ -988,9 +988,9 @@
     $string .= "Started: " . $t->started_obj->as_string . "\n";
     $string .= "Resolved: " . $t->resolved_obj->as_string . "\n";
     $string .= "Owner: " . $t->owner_obj->name . "\n";
-    $string .= "Requestor: " . $t->requestor_addresses . "\n";
-    $string .= "Cc: " . $t->cc_addresses . "\n";
-    $string .= "AdminCc: " . $t->admin_cc_addresses . "\n";
+    $string .= "Requestor: " . $t->role_group("requestor")->member_emails_as_string . "\n";
+    $string .= "Cc: " . $t->role_group("cc")->member_emails_as_string . "\n";
+    $string .= "AdminCc: " . $t->role_group("admin_cc")->member_emails_as_string . "\n";
     $string .= "time_worked: " . $t->time_worked . "\n";
     $string .= "time_estimated: " . $t->time_estimated . "\n";
     $string .= "time_left: " . $t->time_left . "\n";
@@ -1039,9 +1039,9 @@
     $string .= "Started: " . $t->started_obj->unix . "\n";
     $string .= "Resolved: " . $t->resolved_obj->unix . "\n";
     $string .= "Owner: " . $t->owner . "\n";
-    $string .= "Requestor: " . $t->requestor_addresses . "\n";
-    $string .= "Cc: " . $t->cc_addresses . "\n";
-    $string .= "AdminCc: " . $t->admin_cc_addresses . "\n";
+    $string .= "Requestor: " . $t->role_group("requestor")->member_emails_as_string . "\n";
+    $string .= "Cc: " . $t->role_group("cc")->member_emails_as_string . "\n";
+    $string .= "AdminCc: " . $t->role_group("admin_cc")->member_emails_as_string . "\n";
     $string .= "time_worked: " . $t->time_worked . "\n";
     $string .= "time_estimated: " . $t->time_estimated . "\n";
     $string .= "time_left: " . $t->time_left . "\n";

Modified: rt/branches/3.999-DANGEROUS/lib/RT/ScripAction/Notify.pm
==============================================================================
--- rt/branches/3.999-DANGEROUS/lib/RT/ScripAction/Notify.pm	(original)
+++ rt/branches/3.999-DANGEROUS/lib/RT/ScripAction/Notify.pm	Sat Feb  9 23:57:48 2008
@@ -97,18 +97,18 @@
     }
 
     if ( $arg =~ /\bRequestor\b/i ) {
-        push @To, $ticket->requestors->member_emails;
+        push @To, $ticket->role_group("requestor")->member_emails;
     }
 
     if ( $arg =~ /\bCc\b/i ) {
 
         #If we have a To, make the Ccs, Ccs, otherwise, promote them to To
         if (@To) {
-            push( @Cc, $ticket->cc->member_emails );
-            push( @Cc, $ticket->queue_obj->cc->member_emails );
+            push( @Cc, $ticket->role_group("cc")->member_emails );
+            push( @Cc, $ticket->queue_obj->role_group("cc")->member_emails );
         } else {
-            push( @Cc, $ticket->cc->member_emails );
-            push( @To, $ticket->queue_obj->cc->member_emails );
+            push( @Cc, $ticket->role_group("cc")->member_emails );
+            push( @To, $ticket->queue_obj->role_group("cc")->member_emails );
         }
     }
 
@@ -124,8 +124,8 @@
 
     }
     if ( $arg =~ /\bAdmin_?Cc\b/i ) {
-        push( @Bcc, $ticket->admin_cc->member_emails );
-        push( @Bcc, $ticket->queue_obj->admin_cc->member_emails );
+        push( @Bcc, $ticket->role_group("admin_cc")->member_emails );
+        push( @Bcc, $ticket->queue_obj->role_group("admin_cc")->member_emails );
     }
 
     if ( RT->config->get('UseFriendlyToLine') ) {

Modified: rt/branches/3.999-DANGEROUS/t/api/ticket.t
==============================================================================
--- rt/branches/3.999-DANGEROUS/t/api/ticket.t	(original)
+++ rt/branches/3.999-DANGEROUS/t/api/ticket.t	Sat Feb  9 23:57:48 2008
@@ -184,7 +184,7 @@
 
 is ($t1->id, $t2->id);
 
-is ($t1->requestors->members_obj->count, 2);
+is ($t1->role_group("requestor")->members_obj->count, 2);
 
 
 }

Modified: rt/branches/3.999-DANGEROUS/t/api/user.t
==============================================================================
--- rt/branches/3.999-DANGEROUS/t/api/user.t	(original)
+++ rt/branches/3.999-DANGEROUS/t/api/user.t	Sat Feb  9 23:57:48 2008
@@ -214,7 +214,7 @@
 # {{{ Test the user's right to modify a ticket as a _queue_ admincc for a Right granted at the _queue_ level
 
 # Grant queue admin cc the right to modify ticket in the queue 
-ok(my ($qv,$qm) = $q_as_system->admin_cc->principal_object->grant_right( object => $q_as_system, right => 'ModifyTicket'),"Granted the queue adminccs the right to modify tickets");
+ok(my ($qv,$qm) = $q_as_system->role_group("admin_cc")->principal_object->grant_right( object => $q_as_system, right => 'ModifyTicket'),"Granted the queue adminccs the right to modify tickets");
 ok($qv, "Granted the right successfully - $qm");
 
 # Add the user as a queue admincc
@@ -248,7 +248,7 @@
 
 
 # Revoke the right to modify ticket in the queue 
-ok(my ($rqv,$rqm) = $q_as_system->admin_cc->principal_object->revoke_right( object => $q_as_system, right => 'ModifyTicket'),"Revokeed the queue adminccs the right to modify tickets");
+ok(my ($rqv,$rqm) = $q_as_system->role_group("admin_cc")->principal_object->revoke_right( object => $q_as_system, right => 'ModifyTicket'),"Revokeed the queue adminccs the right to modify tickets");
 ok($rqv, "Revoked the right successfully - $rqm");
 
 # }}}
@@ -262,7 +262,7 @@
 ok (!$new_user->has_right( object => $new_tick2->queue_obj, right => 'ModifyTicket'), "User can not modify tickets in the queue without it being granted");
 
 # Grant queue admin cc the right to modify ticket in the queue 
-ok(($qv,$qm) = $q_as_system->admin_cc->principal_object->grant_right( object => RT->system, right => 'ModifyTicket'),"Granted the queue adminccs the right to modify tickets");
+ok(($qv,$qm) = $q_as_system->role_group("admin_cc")->principal_object->grant_right( object => RT->system, right => 'ModifyTicket'),"Granted the queue adminccs the right to modify tickets");
 ok($qv, "Granted the right successfully - $qm");
 
 # Make sure the user can't modify the ticket before they're added as a watcher
@@ -308,7 +308,7 @@
 
 
 # Revoke the right to modify ticket in the queue 
-ok(($rqv,$rqm) = $q_as_system->admin_cc->principal_object->revoke_right( object => RT->system, right => 'ModifyTicket'),"Revokeed the queue adminccs the right to modify tickets");
+ok(($rqv,$rqm) = $q_as_system->role_group("admin_cc")->principal_object->revoke_right( object => RT->system, right => 'ModifyTicket'),"Revokeed the queue adminccs the right to modify tickets");
 ok($rqv, "Revoked the right successfully - $rqm");
 
 # }}}

Modified: rt/branches/3.999-DANGEROUS/t/mail/gateway.t
==============================================================================
--- rt/branches/3.999-DANGEROUS/t/mail/gateway.t	(original)
+++ rt/branches/3.999-DANGEROUS/t/mail/gateway.t	Sat Feb  9 23:57:48 2008
@@ -602,7 +602,7 @@
     ok ($tick->id, "found ticket ". $tick->id);
     is ($tick->id, $id, "correct ticket");
 
-    like $tick->requestor_addresses, qr/root\@localhost/, 'correct requestor';
+    like $tick->role_group("requestor")->member_emails_as_string, qr/root\@localhost/, 'correct requestor';
 }
 
 

Modified: rt/branches/3.999-DANGEROUS/t/shredder/02group_member.t
==============================================================================
--- rt/branches/3.999-DANGEROUS/t/shredder/02group_member.t	(original)
+++ rt/branches/3.999-DANGEROUS/t/shredder/02group_member.t	Sat Feb  9 23:57:48 2008
@@ -84,7 +84,7 @@
 	ok( $status, "owner successfuly set") or diag( "error: $msg" );
 	is( $ticket->owner, $user->id, "owner successfuly set") or diag( "error: $msg" );
 
-	my $member = $ticket->owner_group->members_obj->first;
+	my $member = $ticket->role_group("owner")->members_obj->first;
 	my $shredder = shredder_new();
 	$shredder->put_objects( objects => $member );
 	$shredder->wipeout_all();
@@ -93,7 +93,7 @@
 	($status, $msg) = $ticket->load( $id );
 	ok( $id, "load ticket" ) or diag( "error: $msg" );
 	is( $ticket->owner, RT->nobody->id, "owner switched back to nobody" );
-	is( $ticket->owner_group->members_obj->first->member_id, RT->nobody->id, "and owner role group member is nobody");
+	is( $ticket->role_group("owner")->members_obj->first->member_id, RT->nobody->id, "and owner role group member is nobody");
 }
 
 

Modified: rt/branches/3.999-DANGEROUS/t/ticket/deffered_owner.t
==============================================================================
--- rt/branches/3.999-DANGEROUS/t/ticket/deffered_owner.t	(original)
+++ rt/branches/3.999-DANGEROUS/t/ticket/deffered_owner.t	Sat Feb  9 23:57:48 2008
@@ -42,7 +42,7 @@
     diag $msg if $msg && $ENV{'TEST_VERBOSE'};
     ok $tid, "Created a ticket";
     is $ticket->owner, $tester->id, 'correct owner';
-    like $ticket->admin_cc_addresses, qr/root\@localhost/, 'root is an admincc';
+    like $ticket->role_group("admin_cc")->member_emails_as_string, qr/root\@localhost/, 'root is an admincc';
 }
 
 diag "check that previous trick doesn't work without sufficient rights"
@@ -65,7 +65,7 @@
     diag $msg if $msg && $ENV{'TEST_VERBOSE'};
     ok $tid, "Created a ticket";
     is $ticket->owner, $tester->id, 'correct owner';
-    unlike $ticket->admin_cc_addresses, qr/root\@localhost/, 'root is there';
+    unlike $ticket->role_group("admin_cc")->member_emails_as_string, qr/root\@localhost/, 'root is there';
 }
 
 diag "check that defering owner really works" if $ENV{'TEST_VERBOSE'};
@@ -74,7 +74,7 @@
         { principal => $tester->principal_object,
           right => [qw(SeeQueue ShowTicket CreateTicket)],
         },
-        { principal => $queue->cc->principal_object,
+        { principal => $queue->role_group("cc")->principal_object,
           object => $queue,
           right => [qw(OwnTicket TakeTicket)],
         },
@@ -89,7 +89,7 @@
     );
     diag $msg if $msg && $ENV{'TEST_VERBOSE'};
     ok $tid, "Created a ticket";
-    like $ticket->cc_addresses, qr/tester\@localhost/, 'tester is in the cc list';
+    like $ticket->role_group("cc")->member_emails_as_string, qr/tester\@localhost/, 'tester is in the cc list';
     is $ticket->owner, $tester->id, 'tester is also owner';
 }
 
@@ -110,7 +110,7 @@
     );
     diag $msg if $msg && $ENV{'TEST_VERBOSE'};
     ok $tid, "Created a ticket";
-    like $ticket->cc_addresses, qr/tester\@localhost/, 'tester is in the cc list';
+    like $ticket->role_group("cc")->member_emails_as_string, qr/tester\@localhost/, 'tester is in the cc list';
     isnt $ticket->owner, $tester->id, 'tester is also owner';
 }
 

Modified: rt/branches/3.999-DANGEROUS/t/ticket/requestor-order.t
==============================================================================
--- rt/branches/3.999-DANGEROUS/t/ticket/requestor-order.t	(original)
+++ rt/branches/3.999-DANGEROUS/t/ticket/requestor-order.t	Sat Feb  9 23:57:48 2008
@@ -47,7 +47,7 @@
 {
     my ($tix,$count,$order) = (@_);
     my @mails;
-    while (my $t = $tix->next) { push @mails, $t->requestor_addresses; }
+    while (my $t = $tix->next) { push @mails, $t->role_group("requestor")->member_emails_as_string; }
     is(@mails, $count, "found $count tickets for ". $tix->query);
     my @required_order;
     if( $order =~ /asc/i ) {
@@ -106,7 +106,7 @@
     ($gid, $msg) = $g->create_user_defined_group(name => '20-sort-by-requestor.t-'.rand(200));
     ok($gid, "Created group") or diag("error: $msg");
 
-    ($id, $msg) = $t->requestors->add_member( $gid );
+    ($id, $msg) = $t->role_group("requestor")->add_member( $gid );
     ok($id, "added group to requestors group") or diag("error: $msg");
 }
 
@@ -126,7 +126,7 @@
     $tix->order_by({ column => "requestor.email" });
     $tix->rows_per_page(30);
     my @mails;
-    while (my $t = $tix->next) { push @mails, $t->requestor_addresses; }
+    while (my $t = $tix->next) { push @mails, $t->role_group("requestor")->member_emails_as_string; }
     is(@mails, 30, "found thirty tickets");
     is_deeply( [grep {$_} @mails], [ sort grep {$_} @mails ], "Paging works (exclude nulls, which are db-dependant)");
 }
@@ -137,7 +137,7 @@
     $tix->order_by({ column => "requestor.email" });
     $tix->rows_per_page(30);
     my @mails;
-    while (my $t = $tix->next) { push @mails, $t->requestor_addresses; }
+    while (my $t = $tix->next) { push @mails, $t->role_group("requestor")->member_emails_as_string; }
     is(@mails, 30, "found thirty tickets");
     is_deeply( [grep {$_} @mails], [ sort grep {$_} @mails ], "Paging works (exclude nulls, which are db-dependant)");
 }


More information about the Rt-commit mailing list