summaryrefslogtreecommitdiff
path: root/FS/FS/cust_svc.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2013-09-08 23:10:13 -0700
committerIvan Kohler <ivan@freeside.biz>2013-09-08 23:10:13 -0700
commitabff127758a08cedc9bb323e1d973d27c0e2deb3 (patch)
tree6e56e343e625bda8a444e75494120fb9d3ad782b /FS/FS/cust_svc.pm
parent5c1ffe11b3af54011fb87e4dceb845139d0d3553 (diff)
don't reinitialized RT on service unprovision, RT#24767
Diffstat (limited to 'FS/FS/cust_svc.pm')
-rw-r--r--FS/FS/cust_svc.pm20
1 files changed, 15 insertions, 5 deletions
diff --git a/FS/FS/cust_svc.pm b/FS/FS/cust_svc.pm
index 2066a05..7b35357 100644
--- a/FS/FS/cust_svc.pm
+++ b/FS/FS/cust_svc.pm
@@ -1,7 +1,7 @@
package FS::cust_svc;
use strict;
-use vars qw( @ISA $DEBUG $me $ignore_quantity );
+use vars qw( @ISA $DEBUG $me $ignore_quantity $conf $ticket_system );
use Carp;
#use Scalar::Util qw( blessed );
use FS::Conf;
@@ -25,6 +25,12 @@ $me = '[cust_svc]';
$ignore_quantity = 0;
+#ask FS::UID to run this stuff for us later
+FS::UID->install_callback( sub {
+ $conf = new FS::Conf;
+ $ticket_system = $conf->config('ticket_system')
+});
+
sub _cache {
my $self = shift;
my ( $hashref, $cache ) = @_;
@@ -103,15 +109,19 @@ record - you should probably use the B<cancel> method instead.
=cut
+my $rt_session;
+
sub delete {
my $self = shift;
my $error = $self->SUPER::delete;
return $error if $error;
- if ( FS::Conf->new->config('ticket_system') eq 'RT_Internal' ) {
- FS::TicketSystem->init;
- my $session = FS::TicketSystem->session;
- my $links = RT::Links->new($session->{CurrentUser});
+ if ( $ticket_system eq 'RT_Internal' ) {
+ unless ( $rt_session ) {
+ FS::TicketSystem->init;
+ $rt_session = FS::TicketSystem->session;
+ }
+ my $links = RT::Links->new($rt_session->{CurrentUser});
my $svcnum = $self->svcnum;
$links->Limit(FIELD => 'Target',
VALUE => 'freeside://freeside/cust_svc/'.$svcnum);