X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fprocess%2Fsvc_domain.cgi;h=a5c617d8390be408c45d8adc4b203d96fbbd3941;hb=3714fa41c5306981c9f500df13eea52c72d82545;hp=773143fe31563c50d93e6b57262e5264eda13f09;hpb=3ce7691203a7737406bf2d4442f7fd84b81f847e;p=freeside.git diff --git a/httemplate/edit/process/svc_domain.cgi b/httemplate/edit/process/svc_domain.cgi index 773143fe3..a5c617d83 100755 --- a/httemplate/edit/process/svc_domain.cgi +++ b/httemplate/edit/process/svc_domain.cgi @@ -1,32 +1,62 @@ -% -% -%#remove this to actually test the domains! -%$FS::svc_domain::whois_hack = 1; -% -%$cgi->param('svcnum') =~ /^(\d*)$/ or die "Illegal svcnum!"; -%my $svcnum = $1; -% -%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 ) ) -%} ); -% -%my $error = ''; -%if ($cgi->param('svcnum')) { -% $error="Can't modify a domain!"; -%} else { -% $error=$new->insert; -% $svcnum=$new->svcnum; -%} -% %if ($error) { % $cgi->param('error', $error); -% print $cgi->redirect(popurl(2). "svc_domain.cgi?". $cgi->query_string ); +<% $cgi->redirect(popurl(2). "svc_domain.cgi?". $cgi->query_string ) %> %} else { -% print $cgi->redirect(popurl(3). "view/svc_domain.cgi?$svcnum"); +<% $cgi->redirect(popurl(3). "view/svc_domain.cgi?$svcnum") %> %} -% -% +<%init> + +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->param('svcnum') =~ /^(\d*)$/ or die "Illegal svcnum!"; +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() + ) + ); +} + +my $new = new FS::svc_domain ( { + map { + $_, scalar($cgi->param($_)); + #} qw(svcnum pkgnum svcpart domain action) + } ( fields('svc_domain'), qw( pkgnum svcpart action ) ) +} ); + +# 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); + +my $error = ''; +if ($cgi->param('svcnum')) { + $error = $new->replace(); +} else { + $error = $new->insert; + $svcnum = $new->svcnum; +} +