From: ivan Date: Fri, 13 Feb 2004 10:35:42 +0000 (+0000) Subject: add svc_forward.src X-Git-Tag: NET_WHOIS_RAW_0_31~140 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=07930a9141f823787a7e9c1e88fef453eb850fc7 add svc_forward.src --- diff --git a/FS/FS/svc_forward.pm b/FS/FS/svc_forward.pm index 7a121b835..b9e8ff8f7 100644 --- a/FS/FS/svc_forward.pm +++ b/FS/FS/svc_forward.pm @@ -47,9 +47,11 @@ inherits from FS::Record. The following fields are currently supported: =item srcsvc - svcnum of the source of the forward (see L) +=item src - literal source (username or full email address) + =item dstsvc - svcnum of the destination of the forward (see L) -=item dst - foreign destination (email address) - forward not local to freeside +=item dst - literal destination (username or full email address) =back @@ -214,12 +216,19 @@ sub check { #my $part_svc = $x; my $error = $self->ut_numbern('svcnum') - || $self->ut_number('srcsvc') + || $self->ut_numbern('srcsvc') || $self->ut_numbern('dstsvc') ; return $error if $error; - return "Unknown srcsvc" unless $self->srcsvc_acct; + return "Both srcsvc and src were defined; only one can be specified" + if $self->srcsvc && $self->src; + + return "one of srcsvc or src is required" + unless $self->srcsvc || $self->src; + + return "Unknown srcsvc: ". $self->srcsvc + unless ! $self->srcsvc || $self->srcsvc_acct; return "Both dstsvc and dst were defined; only one can be specified" if $self->dstsvc && $self->dst; @@ -227,16 +236,24 @@ sub check { return "one of dstsvc or dst is required" unless $self->dstsvc || $self->dst; - #return "Unknown dstsvc: $dstsvc" unless $self->dstsvc_acct || ! $self->dstsvc; - return "Unknown dstsvc" - unless qsearchs('svc_acct', { 'svcnum' => $self->dstsvc } ) - || ! $self->dstsvc; + return "Unknown dstsvc: ". $self->dstsvc + unless ! $self->dstsvc || $self->dstsvc_acct; + #return "Unknown dstsvc" + # unless qsearchs('svc_acct', { 'svcnum' => $self->dstsvc } ) + # || ! $self->dstsvc; + if ( $self->src ) { + $self->src =~ /^([\w\.\-\&]*)(\@([\w\-]+\.)+\w+)?$/ + or return "Illegal src: ". $self->dst; + $self->src("$1$2"); + } else { + $self->src(''); + } if ( $self->dst ) { - $self->dst =~ /^([\w\.\-]+)\@(([\w\-]+\.)+\w+)$/ + $self->dst =~ /^([\w\.\-\&]*)(\@([\w\-]+\.)+\w+)?$/ or return "Illegal dst: ". $self->dst; - $self->dst("$1\@$2"); + $self->dst("$1$2"); } else { $self->dst(''); } @@ -246,7 +263,8 @@ sub check { =item srcsvc_acct -Returns the FS::svc_acct object referenced by the srcsvc column. +Returns the FS::svc_acct object referenced by the srcsvc column, or false for +literally specified forwards. =cut @@ -258,7 +276,7 @@ sub srcsvc_acct { =item dstsvc_acct Returns the FS::svc_acct object referenced by the srcsvc column, or false for -forwards not local to freeside. +literally specified forwards. =cut diff --git a/FS/bin/freeside-setup b/FS/bin/freeside-setup index 72780e363..feebcf9f7 100755 --- a/FS/bin/freeside-setup +++ b/FS/bin/freeside-setup @@ -844,8 +844,9 @@ sub tables_hash_hack { 'columns' => [ 'svcnum', 'int', '', '', 'srcsvc', 'int', '', '', + 'src', 'varchar', 'NULL', 255, 'dstsvc', 'int', '', '', - 'dst', 'varchar', 'NULL', $char_d, + 'dst', 'varchar', 'NULL', 255, ], 'primary_key' => 'svcnum', 'unique' => [], diff --git a/httemplate/docs/schema.html b/httemplate/docs/schema.html index 40b211cf9..b38031777 100644 --- a/httemplate/docs/schema.html +++ b/httemplate/docs/schema.html @@ -373,8 +373,9 @@
  • domain_record - Domain zone detail
      diff --git a/httemplate/docs/upgrade10.html b/httemplate/docs/upgrade10.html index e98407351..a878495d4 100644 --- a/httemplate/docs/upgrade10.html +++ b/httemplate/docs/upgrade10.html @@ -156,6 +156,8 @@ ALTER TABLE h_part_referral ADD disabled char(1) NULL; CREATE INDEX part_referral1 ON part_referral ( disabled ); ALTER TABLE pkg_svc ADD primary_svc char(1) NULL; ALTER TABLE h_pkg_svc ADD primary_svc char(1) NULL; +ALTER TABLE svc_forward ADD src varchar(255) NULL; +ALTER TABLE h_svc_forward ADD src varchar(255) NULL; dump database, edit: - cust_main: increase otaker from 8 to 32