-<%
-#
-# $Id: svc_domain.cgi,v 1.1 2001-07-30 07:36:04 ivan Exp $
-#
-# Usage: post form to:
-# http://server.name/path/svc_domain.cgi
-#
-# lots of yucky stuff in this one... bleachlkjhui!
-#
-# ivan@voicenet.com 97-jan-6
-#
-# kludged for new domain template 3.5
-# ivan@voicenet.com 97-jul-24
-#
-# moved internic bits to svc_domain.pm ivan@sisd.com 98-mar-14
-#
-# Changes to allow page to work at a relative position in server
-# bmccane@maxbaud.net 98-apr-3
-#
-# $Log: svc_domain.cgi,v $
-# Revision 1.1 2001-07-30 07:36:04 ivan
-# templates!!!
-#
-# Revision 1.7 2001/04/23 07:12:44 ivan
-# better error message (if kludgy) for no referral
-# remove outdated NSI foo from domain ordering. also, fuck NSI.
-#
-# Revision 1.6 1999/02/28 00:03:47 ivan
-# removed misleading comments
-#
-# Revision 1.5 1999/02/07 09:59:33 ivan
-# more mod_perl fixes, and bugfixes Peter Wemm sent via email
-#
-# Revision 1.4 1999/01/19 05:14:01 ivan
-# for mod_perl: no more top-level my() variables; use vars instead
-# also the last s/create/new/;
-#
-# Revision 1.3 1999/01/18 22:48:02 ivan
-# s/create/new/g; and use fields('table_name')
-#
-# Revision 1.2 1998/12/17 08:40:30 ivan
-# s/CGI::Request/CGI.pm/; etc
-#
+%if ($error) {
+% $cgi->param('error', $error);
+<% $cgi->redirect(popurl(2). "svc_domain.cgi?". $cgi->query_string ) %>
+%} else {
+<% $cgi->redirect(popurl(3). "view/svc_domain.cgi?$svcnum") %>
+%}
+<%init>
-use strict;
-use vars qw( $cgi $svcnum $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);
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
#remove this to actually test the domains!
$FS::svc_domain::whois_hack = 1;
-$cgi = new CGI;
-&cgisuidsetup($cgi);
-
$cgi->param('svcnum') =~ /^(\d*)$/ or die "Illegal svcnum!";
-$svcnum = $1;
+my $svcnum = $1;
+
+#unmunge cgp_accessmodes (falze laziness-ish w/part_svc.pm::process & svc_acct)
+unless ( $cgi->param('cgp_accessmodes') ) {
+ $cgi->param('cgp_accessmodes',
+ join(' ',
+ sort map { /^cgp_accessmodes_([\w\/]+)$/ or die "no way"; $1; }
+ grep $cgi->param($_),
+ grep /^cgp_accessmodes_([\w\/]+)$/,
+ $cgi->param()
+ )
+ );
+}
+
+#unmunge acct_def_cgp_accessmodes (falze laziness-ahoy)
+unless ( $cgi->param('acct_def_cgp_accessmodes') ) {
+ $cgi->param('acct_def_cgp_accessmodes',
+ join(' ',
+ sort map { /^acct_def_cgp_accessmodes_([\w\/]+)$/ or die "no way"; $1; }
+ grep $cgi->param($_),
+ grep /^acct_def_cgp_accessmodes_([\w\/]+)$/,
+ $cgi->param()
+ )
+ );
+}
-$new = new FS::svc_domain ( {
+my $new = new FS::svc_domain ( {
map {
$_, scalar($cgi->param($_));
- #} qw(svcnum pkgnum svcpart domain action purpose)
- } ( fields('svc_domain'), qw( pkgnum svcpart action purpose ) )
+ #} qw(svcnum pkgnum svcpart domain action)
+ } ( fields('svc_domain'), qw( pkgnum svcpart action ) )
} );
-if ($cgi->param('svcnum')) {
- $error="Can't modify a domain!";
-} else {
- $error=$new->insert;
- $svcnum=$new->svcnum;
-}
+# trim leading and trailing whitespace to avoid errors caused by pasting into UI
+my $domain = $new->domain;
+$domain =~ s/^\s+|\s+$//g;
+$new->domain($domain);
-if ($error) {
- $cgi->param('error', $error);
- print $cgi->redirect(popurl(2). "svc_domain.cgi?". $cgi->query_string );
+my $error = '';
+if ($cgi->param('svcnum')) {
+ $error = $new->replace();
} else {
- print $cgi->redirect(popurl(3). "view/svc_domain.cgi?$svcnum");
+ $error = $new->insert;
+ $svcnum = $new->svcnum;
}
-%>
+</%init>