From dd013679940cb0a4425eeff4df263e390d9c42e4 Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 17 Apr 1998 05:37:07 +0000 Subject: Initial revision --- htdocs/misc/cancel-unaudited.cgi | 85 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100755 htdocs/misc/cancel-unaudited.cgi (limited to 'htdocs/misc/cancel-unaudited.cgi') diff --git a/htdocs/misc/cancel-unaudited.cgi b/htdocs/misc/cancel-unaudited.cgi new file mode 100755 index 000000000..929274f38 --- /dev/null +++ b/htdocs/misc/cancel-unaudited.cgi @@ -0,0 +1,85 @@ +#!/usr/bin/perl -Tw +# +# cancel-unaudited.cgi: Cancel an unaudited account +# +# Usage: cancel-unaudited.cgi svcnum +# http://server.name/path/cancel-unaudited.cgi pkgnum +# +# Note: Should be run setuid freeside as user nobody +# +# ivan@voicenet.com 97-apr-23 +# +# rewrote for new API +# ivan@voicenet.com 97-jul-21 +# +# Search->Record, cgisuidsetup($cgi) ivan@sids.com 98-mar-19 +# +# Changes to allow page to work at a relative position in server +# bmccane@maxbaud.net 98-apr-3 + +use strict; +use CGI::Base qw(:DEFAULT :CGI); # CGI module +use CGI::Carp qw(fatalsToBrowser); +use FS::UID qw(cgisuidsetup); +use FS::Record qw(qsearchs); +use FS::cust_svc; +use FS::svc_acct; + +my($cgi) = new CGI::Base; +$cgi->get; +&cgisuidsetup($cgi); + +#untaint svcnum +$QUERY_STRING =~ /^(\d+)$/; +my($svcnum)=$1; + +my($svc_acct) = qsearchs('svc_acct',{'svcnum'=>$svcnum}); +&idiot("Unknown svcnum!") unless $svc_acct; + +my($cust_svc) = qsearchs('cust_svc',{'svcnum'=>$svcnum}); +&idiot(qq!This account has already been audited. Cancel the + package instead.!) + if $cust_svc->getfield('pkgnum') ne ''; + +local $SIG{HUP} = 'IGNORE'; +local $SIG{INT} = 'IGNORE'; +local $SIG{QUIT} = 'IGNORE'; +local $SIG{TERM} = 'IGNORE'; +local $SIG{TSTP} = 'IGNORE'; + +my($error); + +bless($svc_acct,"FS::svc_acct"); +$error = $svc_acct->cancel; +&idiot($error) if $error; +$error = $svc_acct->delete; +&idiot($error) if $error; + +bless($cust_svc,"FS::cust_svc"); +$error = $cust_svc->delete; +&idiot($error) if $error; + +$cgi->redirect("../"); + +sub idiot { + my($error)=@_; + SendHeaders(); + print < + + Error cancelling account + + +
+

Error cancelling account

+
+
+ There has been an error cancelling this acocunt: $error + + + +END + exit; +} + -- cgit v1.2.1