Optimize "Customer has a referring customer" condition, RT#74452
[freeside.git] / httemplate / misc / process / catchall.cgi
index 0d84d7c..0dda2ea 100755 (executable)
@@ -1,36 +1,22 @@
-<%
-#
-# $Id: catchall.cgi,v 1.1 2001-08-19 15:53:35 jeff Exp $
-#
-# Usage: post form to:
-#        http://server.name/path/catchall.cgi
-#
-# $Log: catchall.cgi,v $
-# Revision 1.1  2001-08-19 15:53:35  jeff
-# added user interface for svc_forward and vpopmail support
-#
-#
-
-use strict;
-use vars qw( $cgi $svcnum $old $new $error );
-use CGI;
-use CGI::Carp qw(fatalsToBrowser);
-use FS::UID qw(cgisuidsetup);
-use FS::Record qw(qsearchs fields);
-use FS::svc_domain;
-use FS::CGI qw(popurl);
+%if ($error) {
+%  $cgi->param('error', $error);
+<% $cgi->redirect(popurl(2). "catchall.cgi?". $cgi->query_string ) %>
+%} else {
+<% $cgi->redirect(popurl(3). "view/svc_domain.cgi?$svcnum") %>
+%}
+<%init>
 
-$FS::svc_domain::whois_hack=1;
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Edit domain catchall');
 
-$cgi = new CGI;
-cgisuidsetup($cgi);
+$FS::svc_domain::whois_hack=1;
 
 $cgi->param('svcnum') =~ /^(\d*)$/ or die "Illegal svcnum!";
-$svcnum =$1;
+my $svcnum =$1;
 
-$old = qsearchs('svc_domain',{'svcnum'=>$svcnum}) if $svcnum;
+my $old = qsearchs('svc_domain',{'svcnum'=>$svcnum}) if $svcnum;
 
-$new = new FS::svc_domain ( {
+my $new = new FS::svc_domain ( {
   map {
     ($_, scalar($cgi->param($_)));
   } ( fields('svc_domain'), qw( pkgnum svcpart ) )
@@ -38,6 +24,7 @@ $new = new FS::svc_domain ( {
 
 $new->setfield('action' => 'M');
 
+my $error;
 if ( $svcnum ) {
   $error = $new->replace($old);
 } else {
@@ -45,11 +32,4 @@ if ( $svcnum ) {
   $svcnum = $new->getfield('svcnum');
 } 
 
-if ($error) {
-  $cgi->param('error', $error);
-  print $cgi->redirect(popurl(2). "catchall.cgi?". $cgi->query_string );
-} else {
-  print $cgi->redirect(popurl(3). "view/svc_domain.cgi?$svcnum");
-}
-
-%>
+</%init>