From 0cbb171da2cf3c7059612c0f2fbcf4a8bb80ab58 Mon Sep 17 00:00:00 2001 From: rsiddall Date: Mon, 15 Jun 2009 19:41:29 +0000 Subject: Add domain registration operations to the View Domain screen, if the domain has an associated export supporting registration. Shows the domain status and allows registration, transfer, revocation, or renewal. Revocation almost never works since the registries impose very short windows after initial registration. Also updated the OpenSRS registration export to support the additional operations. --- httemplate/edit/process/domreg.cgi | 62 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100755 httemplate/edit/process/domreg.cgi (limited to 'httemplate/edit/process/domreg.cgi') diff --git a/httemplate/edit/process/domreg.cgi b/httemplate/edit/process/domreg.cgi new file mode 100755 index 000000000..b643638f4 --- /dev/null +++ b/httemplate/edit/process/domreg.cgi @@ -0,0 +1,62 @@ +%if ($error) { +% $cgi->param('error', $error); +<% $cgi->redirect(popurl(3). "view/svc_domain.cgi?$svcnum") %> +%} else { +<% $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? + +$cgi->param('op') =~ /^(register|transfer|revoke|renew)$/ or die "Illegal operation"; +my $operation = $1; +#my($query) = $cgi->keywords; +#$query =~ /^(\d+)$/; +$cgi->param('svcnum') =~ /^(\d*)$/ or die "Illegal svcnum!"; +my $svcnum = $1; +my $svc_domain = qsearchs({ + 'select' => 'svc_domain.*', + 'table' => 'svc_domain', + 'addl_from' => ' LEFT JOIN cust_svc USING ( svcnum ) '. + ' LEFT JOIN cust_pkg USING ( pkgnum ) '. + ' LEFT JOIN cust_main USING ( custnum ) ', + 'hashref' => {'svcnum'=>$svcnum}, + 'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql, +}); +die "Unknown svcnum" unless $svc_domain; + +my $cust_svc = qsearchs('cust_svc',{'svcnum'=>$svcnum}); +my $part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } ); +die "Unknown svcpart" unless $part_svc; + +my $error = ''; + +my @exports = $part_svc->part_export(); + +my $registrar; +my $export; + +# Find the first export that does domain registration +foreach (@exports) { + $export = $_ if $_->can('registrar'); +} + +my $period = 1; # Current OpenSRS export can only handle 1 year registrations + +# If we have a domain registration export, get the registrar object +if ($export) { + if ($operation eq 'register') { + $error = $export->register( $svc_domain, $period ); + } elsif ($operation eq 'transfer') { + $error = $export->transfer( $svc_domain ); + } elsif ($operation eq 'revoke') { + $error = $export->revoke( $svc_domain ); + } elsif ($operation eq 'renew') { + $cgi->param('period') =~ /^(\d+)$/ or die "Illegal renewal period!"; + $period = $1; + $error = $export->renew( $svc_domain, $period ); + } +} + + -- cgit v1.2.1 From 1d3af1f921c52bc1cd1dde7a73b9a22f097bf606 Mon Sep 17 00:00:00 2001 From: rsiddall Date: Tue, 14 Jul 2009 00:28:05 +0000 Subject: New export to register/transfer/renew/revoke domains using Net::DRI. Currently optimized for OpenSRS. Should become more generalized in later releases. Modified Makefile to insert the Freeside log folder into the new export. Modified svc_domain.pm to prevent generation of transfer requests when a domain is moved to a different package with a domain registration attached to one of the included services. Modified domreg.cgi to display errors on a separate page. --- httemplate/edit/process/domreg.cgi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'httemplate/edit/process/domreg.cgi') diff --git a/httemplate/edit/process/domreg.cgi b/httemplate/edit/process/domreg.cgi index b643638f4..a95474e44 100755 --- a/httemplate/edit/process/domreg.cgi +++ b/httemplate/edit/process/domreg.cgi @@ -1,6 +1,6 @@ %if ($error) { % $cgi->param('error', $error); -<% $cgi->redirect(popurl(3). "view/svc_domain.cgi?$svcnum") %> +% errorpage($error); %} else { <% $cgi->redirect(popurl(3). "view/svc_domain.cgi?$svcnum") %> %} -- cgit v1.2.1