X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fsvc_domain.cgi;h=b9a8de752cee99d7c95af617c248cb0ae23fa8ef;hb=c7d6edd92281d39e6eb59656a5b79faf8454973d;hp=f852400dad1faabe18771256b1b1da4d927a6300;hpb=51984ac3d3da3006809c6866fdecd4ad83610731;p=freeside.git diff --git a/httemplate/view/svc_domain.cgi b/httemplate/view/svc_domain.cgi index f852400da..b9a8de752 100755 --- a/httemplate/view/svc_domain.cgi +++ b/httemplate/view/svc_domain.cgi @@ -1,106 +1,223 @@ -<% -# -# $Id: svc_domain.cgi,v 1.1 2001-07-30 07:36:04 ivan Exp $ -# -# Usage: svc_domain svcnum -# http://server.name/path/svc_domain.cgi?svcnum -# -# ivan@voicenet.com 97-jan-6 -# -# rewrite 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.11 2000/12/03 15:14:00 ivan -# bugfixes from Jeff Finucane , thanks! -# -# Revision 1.10 1999/08/27 22:18:44 ivan -# point to patrick instead of internic! -# -# Revision 1.9 1999/04/08 12:00:19 ivan -# aesthetic update -# -# Revision 1.8 1999/02/28 00:04:04 ivan -# removed misleading comments -# -# Revision 1.7 1999/02/23 08:09:25 ivan -# beginnings of one-screen new customer entry and some other miscellania -# -# Revision 1.6 1999/01/19 05:14:23 ivan -# for mod_perl: no more top-level my() variables; use vars instead -# also the last s/create/new/; -# -# Revision 1.5 1999/01/18 09:41:47 ivan -# all $cgi->header calls now include ( '-expires' => 'now' ) for mod_perl -# (good idea anyway) -# -# Revision 1.4 1998/12/23 03:10:19 ivan -# $cgi->keywords instead of $cgi->query_string -# -# Revision 1.3 1998/12/17 09:57:25 ivan -# s/CGI::(Base|Request)/CGI.pm/; -# -# Revision 1.2 1998/11/13 09:56:50 ivan -# change configuration file layout to support multiple distinct databases (with -# own set of config files, export, etc.) -# - -use strict; -use vars qw( $cgi $query $svcnum $svc_domain $domain $cust_svc $pkgnum - $cust_pkg $custnum $part_svc $p ); -use CGI; -use FS::UID qw(cgisuidsetup); -use FS::CGI qw(header menubar popurl menubar); -use FS::Record qw(qsearchs); -use FS::svc_domain; -use FS::cust_svc; -use FS::cust_pkg; -use FS::part_svc; - -$cgi = new CGI; -cgisuidsetup($cgi); - -($query) = $cgi->keywords; +<% include("/elements/header.html",'Domain View', menubar( + ( ( $pkgnum || $custnum ) + ? ( "View this customer (#$display_custnum)" => "${p}view/cust_main.cgi?$custnum", + ) + : ( "Delete this (unaudited) domain" => + "javascript:areyousure('${p}misc/cancel-unaudited.cgi?$svcnum', 'Delete $domain and all records?' )" ) + ) +)) %> + +<% include('/elements/error.html') %> + +Service #<% $svcnum %> +
Service: <% $part_svc->svc %> +
Domain name: <% $domain %> +% if ($export) { +
Status: <% $status %> +% if ( $FS::CurrentUser::CurrentUser->access_right('Manage domain registration') ) { +% 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 { +
Catch all email: +% } + +<% $email ? "$email" : "(none)" %> +

View whois information. +

+ + +% my @records; if ( @records = $svc_domain->domain_record ) { + + <% include('/elements/table-grid.html') %> + +% my $bgcolor1 = '#eeeeee'; +% my $bgcolor2 = '#ffffff'; +% my $bgcolor = $bgcolor2; + + + Zone + Type + Data + + +% foreach my $domain_record ( @records ) { +% my $type = $domain_record->rectype eq '_mstr' +% ? "(slave)" +% : $domain_record->recaf. ' '. $domain_record->rectype; + + + + <% $domain_record->reczone %> + <% $type %> + <% $domain_record->recdata %> + +% unless ( $domain_record->rectype eq 'SOA' +% || ! $FS::CurrentUser::CurrentUser->access_right('Edit domain nameservice') +% ) { +% ( my $recdata = $domain_record->recdata ) =~ s/"/\\'\\'/g; + (delete) +% } + + + + +% if ( $bgcolor eq $bgcolor1 ) { +% $bgcolor = $bgcolor2; +% } else { +% $bgcolor = $bgcolor1; +% } + +% } + + +% } + +% if ( $FS::CurrentUser::CurrentUser->access_right('Edit domain nameservice') ) { +
+
+ + + IN + + + +
+ +

+ or +

+ +
+ +% if ( @records ) { + Delete all records and +% } + Slave from nameserver IP + + + + + + +
+ +% } + +

+ +<% joblisting({'svcnum'=>$svcnum}, 1) %> + +<% include('/elements/footer.html') %> +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('View customer services'); + +my($query) = $cgi->keywords; $query =~ /^(\d+)$/; -$svcnum = $1; -$svc_domain = qsearchs('svc_domain',{'svcnum'=>$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; -$cust_svc = qsearchs('cust_svc',{'svcnum'=>$svcnum}); -$pkgnum = $cust_svc->getfield('pkgnum'); +my $cust_svc = qsearchs('cust_svc',{'svcnum'=>$svcnum}); +my $pkgnum = $cust_svc->getfield('pkgnum'); +my($cust_pkg, $custnum, $display_custnum); if ($pkgnum) { - $cust_pkg=qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); - $custnum=$cust_pkg->getfield('custnum'); + $cust_pkg = qsearchs('cust_pkg', {'pkgnum'=>$pkgnum} ); + $custnum = $cust_pkg->custnum; + $display_custnum = $cust_pkg->cust_main->display_custnum; } else { $cust_pkg = ''; $custnum = ''; } -$part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } ); -die "Unkonwn svcpart" unless $part_svc; +my $part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } ); +die "Unknown svcpart" unless $part_svc; + +my $email = ''; +if ($svc_domain->catchall) { + my $svc_acct = qsearchs('svc_acct',{'svcnum'=> $svc_domain->catchall } ); + die "Unknown svcpart" unless $svc_acct; + $email = $svc_acct->email; +} + +my $domain = $svc_domain->domain; -$domain = $svc_domain->domain; +my $status = 'Unknown'; +my %ops = (); -$p = popurl(2); -print $cgi->header( '-expires' => 'now' ), header('Domain View', menubar( - ( ( $pkgnum || $custnum ) - ? ( "View this package (#$pkgnum)" => "${p}view/cust_pkg.cgi?$pkgnum", - "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum", - ) - : ( "Cancel this (unaudited) account" => - "${p}misc/cancel-unaudited.cgi?$svcnum" ) - ), - "Main menu" => $p, -)), - "Service #$svcnum", - "
Service: ", $part_svc->svc, "", - "
Domain name: $domain.", - qq!

View whois information.!, - '', -; -%> +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"; + } +} + +