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/view/svc_domain.cgi | 62 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) (limited to 'httemplate/view') diff --git a/httemplate/view/svc_domain.cgi b/httemplate/view/svc_domain.cgi index 36577d39c..1e93b9461 100755 --- a/httemplate/view/svc_domain.cgi +++ b/httemplate/view/svc_domain.cgi @@ -7,9 +7,38 @@ ) )) %> +<% include('/elements/error.html') %> + Service #<% $svcnum %>
Service: <% $part_svc->svc %>
Domain name: <% $domain %> +% if ($export) { +
Status: <% $status %> +% if ( $FS::CurrentUser::CurrentUser->access_right('Change customer service') ) { +% if ( defined($ops{'register'}) ) { + Register at <% $registrar->{'name'} %>  +% } +% if ( defined($ops{'transfer'}) ) { + Transfer to <% $registrar->{'name'} %>  +% } +% if ( defined($ops{'renew'}) ) { +
+ + + +   +
+% } +% if ( defined($ops{'revoke'}) ) { + Revoke +% } +% } +% } + % if ( $FS::CurrentUser::CurrentUser->access_right('Edit domain catchall') ) {
Catch all email (change): % } else { @@ -158,4 +187,37 @@ if ($svc_domain->catchall) { my $domain = $svc_domain->domain; +my $status = 'Unknown'; +my %ops = (); + +my @exports = $part_svc->part_export(); + +my $registrar; +my $export; + +# Find the first export that does domain registration +foreach (@exports) { + $export = $_ if $_->can('registrar'); +} +# If we have a domain registration export, get the registrar object +if ($export) { + $registrar = $export->registrar; + my $domstat = $export->get_status( $svc_domain ); + if (defined($domstat->{'message'})) { + $status = $domstat->{'message'}; + } elsif (defined($domstat->{'unregistered'})) { + $status = 'Not registered'; + $ops{'register'} = "Register"; + } elsif (defined($domstat->{'status'})) { + $status = $domstat->{'status'} . ' ' . $domstat->{'contact_email'} . ' ' . $domstat->{'last_update_time'}; + } elsif (defined($domstat->{'expdate'})) { + $status = "Expires " . $domstat->{'expdate'}; + $ops{'renew'} = "Renew"; + $ops{'revoke'} = "Revoke"; + } else { + $status = $domstat->{'reason'}; + $ops{'transfer'} = "Transfer"; + } +} + -- cgit v1.2.1