summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2008-04-18 21:19:29 +0000
committerivan <ivan>2008-04-18 21:19:29 +0000
commit9308beec0b556647bf703b67ba6a036a5bedff37 (patch)
tree44b74a1afd462ac9cba373dacb6c221ea6b2f100
parent2eda79fb265b3acdde85881f1160f6daa73f2d84 (diff)
hopefully, finally fix ticket auto-association not getting along with RT ACLs
-rw-r--r--rt/lib/RT/Ticket_Overlay.pm33
-rw-r--r--rt/lib/RT/URI/freeside.pm4
2 files changed, 31 insertions, 6 deletions
diff --git a/rt/lib/RT/Ticket_Overlay.pm b/rt/lib/RT/Ticket_Overlay.pm
index 050278a..a51cd16 100644
--- a/rt/lib/RT/Ticket_Overlay.pm
+++ b/rt/lib/RT/Ticket_Overlay.pm
@@ -724,7 +724,7 @@ sub Create {
#first find any requestors with emails but *without* customer targets
my @NoCust_Requestors =
grep { $_->EmailAddress && ! $_->Customers->Count }
- @{ $self->Requestors->UserMembersObj->ItemsArrayRef };
+ @{ $self->_Requestors->UserMembersObj->ItemsArrayRef };
for my $Requestor (@NoCust_Requestors) {
@@ -752,7 +752,7 @@ sub Create {
my @Requestors =
grep { $_->Customers->Count }
- @{ $self->Requestors->UserMembersObj->ItemsArrayRef };
+ @{ $self->_Requestors->UserMembersObj->ItemsArrayRef };
foreach my $Requestor ( @Requestors ) {
foreach my $cust_link ( @{ $Requestor->Customers->ItemsArrayRef } ) {
@@ -1811,6 +1811,25 @@ sub Requestors {
# }}}
+# {{{ sub _Requestors
+
+=head2 _Requestors
+
+Private non-ACLed variant of Reqeustors so that we can look them up for the
+purposes of customer auto-association during create.
+
+=cut
+
+sub _Requestors {
+ my $self = shift:
+
+ my $group = RT::Group->new($RT::SystemUser);
+ $group->LoadTicketRoleGroup(Type => 'Requestor', Ticket => $self->Id);
+ return ($group);
+}
+
+% }}}
+
# {{{ sub Cc
=head2 Cc
@@ -2535,7 +2554,13 @@ sub _Links {
unless ( $self->{"$field$type"} ) {
$self->{"$field$type"} = new RT::Links( $self->CurrentUser );
- if ( $self->CurrentUserHasRight('ShowTicket') ) {
+
+ #not sure what this ACL was supposed to do... but returning the
+ # bare (unlimited) RT::Links certainly seems wrong, it causes the
+ # $Ticket->Customers method during creation to return results for every
+ # ticket...
+ #if ( $self->CurrentUserHasRight('ShowTicket') ) {
+
# Maybe this ticket is a merged ticket
my $Tickets = new RT::Tickets( $self->CurrentUser );
# at least to myself
@@ -2552,7 +2577,7 @@ sub _Links {
$self->{"$field$type"}->Limit( FIELD => 'Type',
VALUE => $type )
if ($type);
- }
+ #}
}
return ( $self->{"$field$type"} );
}
diff --git a/rt/lib/RT/URI/freeside.pm b/rt/lib/RT/URI/freeside.pm
index ff1d38d..d73dbac 100644
--- a/rt/lib/RT/URI/freeside.pm
+++ b/rt/lib/RT/URI/freeside.pm
@@ -38,8 +38,8 @@ RT::URI::freeside
=head1 DESCRIPTION
-URI handler for freeside URIs. See http://www.sisd.com/freeside/ for
-more information on freeside.
+URI handler for Freeside URIs. See http://www.freeside.biz/ for more
+information on Freeside.
=head1 Public subroutines