[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