X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fsvc_www.pm;h=ed079f80b01bcaa40eb0afc4a624a7daa96f657a;hp=7c7032f4c153c3b4003bcf72e5987b210ea8b344;hb=3adb46fccf9f631e188ea5383bd147b340477639;hpb=c8cccb4a92adceb943c635fe62dad0d034462ce0 diff --git a/FS/FS/svc_www.pm b/FS/FS/svc_www.pm index 7c7032f4c..ed079f80b 100644 --- a/FS/FS/svc_www.pm +++ b/FS/FS/svc_www.pm @@ -1,7 +1,8 @@ package FS::svc_www; +use base qw(FS::svc_Common); use strict; -use vars qw(@ISA $conf $apacheip); +use vars qw($conf $apacheip); #use FS::Record qw( qsearch qsearchs ); use FS::Record qw( qsearchs dbh ); use FS::svc_Common; @@ -10,8 +11,6 @@ use FS::domain_record; use FS::svc_acct; use FS::svc_domain; -@ISA = qw( FS::svc_Common ); - #ask FS::UID to run this stuff for us later $FS::UID::callback{'FS::svc_www'} = sub { $conf = new FS::Conf; @@ -72,8 +71,33 @@ points to. You can ask the object for a copy with the I method. =cut +sub table_info { + { + 'name' => 'Hosting', + 'name_plural' => 'Virtual hosting services', + 'display_weight' => 40, + 'cancel_weight' => 20, + 'fields' => { + }, + }; +}; + sub table { 'svc_www'; } +=item label [ END_TIMESTAMP [ START_TIMESTAMP ] ] + +Returns the zone name for this virtual host. + +END_TIMESTAMP and START_TIMESTAMP can optionally be passed when dealing with +history records. + +=cut + +sub label { + my $self = shift; + $self->domain_record(@_)->zone; +} + =item insert [ , OPTION => VALUE ... ] Adds this record to the database. If there is an error, returns the error, @@ -88,57 +112,31 @@ If I is set (to a scalar jobnum or an array reference of jobnums), all provisioning jobs will have a dependancy on the supplied jobnum(s) (they will not run until the specific job(s) complete(s)). - =cut -sub insert { +sub preinsert_hook { my $self = shift; - my $error = $self->check; - return $error if $error; + #return '' unless $self->recnum =~ /^([\w\-]+|\@)\.(([\w\.\-]+\.)+\w+)$/; + return '' unless $self->recnum =~ /^([\w\-]+|\@)\.(\d+)$/; - local $SIG{HUP} = 'IGNORE'; - local $SIG{INT} = 'IGNORE'; - local $SIG{QUIT} = 'IGNORE'; - local $SIG{TERM} = 'IGNORE'; - local $SIG{TSTP} = 'IGNORE'; - local $SIG{PIPE} = 'IGNORE'; - - my $oldAutoCommit = $FS::UID::AutoCommit; - local $FS::UID::AutoCommit = 0; - my $dbh = dbh; - - #if ( $self->recnum =~ /^([\w\-]+|\@)\.(([\w\.\-]+\.)+\w+)$/ ) { - if ( $self->recnum =~ /^([\w\-]+|\@)\.(\d+)$/ ) { - my( $reczone, $domain_svcnum ) = ( $1, $2 ); - unless ( $apacheip ) { - $dbh->rollback if $oldAutoCommit; - return "Configuration option apacheip not set; can't autocreate A record"; - #"for $reczone". $svc_domain->domain; - } - my $domain_record = new FS::domain_record { - 'svcnum' => $domain_svcnum, - 'reczone' => $reczone, - 'recaf' => 'IN', - 'rectype' => 'A', - 'recdata' => $apacheip, - }; - $error = $domain_record->insert; - if ( $error ) { - $dbh->rollback if $oldAutoCommit; - return $error; - } - $self->recnum($domain_record->recnum); - } - - $error = $self->SUPER::insert(@_); - if ( $error ) { - $dbh->rollback if $oldAutoCommit; - return $error; + my( $reczone, $domain_svcnum ) = ( $1, $2 ); + unless ( $apacheip ) { + return "Configuration option apacheip not set; can't autocreate A record"; + #"for $reczone". $svc_domain->domain; } + my $domain_record = new FS::domain_record { + 'svcnum' => $domain_svcnum, + 'reczone' => $reczone, + 'recaf' => 'IN', + 'rectype' => 'A', + 'recdata' => $apacheip, + }; + my $error = $domain_record->insert; + return $error if $error; - $dbh->commit or die $dbh->errstr if $oldAutoCommit; - ''; + $self->recnum($domain_record->recnum); + return ''; } =item delete @@ -151,7 +149,7 @@ sub delete { my $self = shift; my $error; - $error = $self->SUPER::delete; + $error = $self->SUPER::delete(@_); return $error if $error; ''; @@ -164,15 +162,15 @@ returns the error, otherwise returns false. =cut -sub replace { - my ( $new, $old ) = ( shift, shift ); - my $error; - - $error = $new->SUPER::replace($old); - return $error if $error; - - ''; -} +#sub replace { +# my ( $new, $old ) = ( shift, shift ); +# my $error; +# +# $error = $new->SUPER::replace($old, @_); +# return $error if $error; +# +# ''; +#} =item suspend @@ -205,6 +203,7 @@ sub check { $self->ut_numbern('svcnum') # || $self->ut_number('recnum') || $self->ut_numbern('usersvc') + || $self->ut_anything('config') ; return $error if $error; @@ -252,13 +251,6 @@ sub check { Returns the FS::domain_record record for this web virtual host's zone (see L). -=cut - -sub domain_record { - my $self = shift; - qsearchs('domain_record', { 'recnum' => $self->recnum } ); -} - =item svc_acct Returns the FS::svc_acct record for this web virtual host's owner (see