X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FRecord.pm;h=9a532e3a068d176ce825887f9a8c205f811f370b;hb=8c1f9804d9a02c0c054eededeb500c72a640249a;hp=8dbd4aff3fec580161329119ef5b57b57350cff4;hpb=e7b0bcbf0b1feff0e0e38d5858f512286a4d0ba7;p=freeside.git diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm index 8dbd4aff3..9a532e3a0 100644 --- a/FS/FS/Record.pm +++ b/FS/FS/Record.pm @@ -8,7 +8,7 @@ use Carp qw(carp cluck croak confess); use File::CounterFile; use Locale::Country; use DBIx::DBSchema; -use FS::UID qw(dbh checkruid swapuid getotaker datasrc driver_name); +use FS::UID qw(dbh checkruid getotaker datasrc driver_name); @ISA = qw(Exporter); @EXPORT_OK = qw(dbh fields hfields qsearch qsearchs dbdef); @@ -566,7 +566,6 @@ sub unique { #warn "table $table is tainted" if is_tainted($table); #warn "field $field is tainted" if is_tainted($field); - &swapuid; my($counter) = new File::CounterFile "$table.$field",0; # hack for web demo # getotaker() =~ /^([\w\-]{1,16})$/ or die "Illegal CGI REMOTE_USER!"; @@ -577,7 +576,6 @@ sub unique { my($index)=$counter->inc; $index=$counter->inc while qsearchs($table,{$field=>$index}); #just in case - &swapuid; $index =~ /^(\d*)$/; $index=$1; @@ -815,10 +813,17 @@ Check/untaint zip codes. =cut sub ut_zip { - my( $self, $field ) = @_; - $self->getfield($field) =~ /^\s*(\w[\w\-\s]{2,8}\w)\s*$/ - or return "Illegal (zip) $field: ". $self->getfield($field); - $self->setfield($field,$1); + my( $self, $field, $country ) = @_; + if ( $country eq 'US' ) { + $self->getfield($field) =~ /\s*(\d{5}(\-\d{4})?)\s*$/ + or return "Illegal (zip) $field for country $country: ". + $self->getfield($field); + $self->setfield($field,$1); + } else { + $self->getfield($field) =~ /^\s*(\w[\w\-\s]{2,8}\w)\s*$/ + or return "Illegal (zip) $field: ". $self->getfield($field); + $self->setfield($field,$1); + } ''; } @@ -971,7 +976,7 @@ sub DESTROY { return; } =head1 VERSION -$Id: Record.pm,v 1.24 2001-08-19 00:48:49 ivan Exp $ +$Id: Record.pm,v 1.26 2001-08-31 09:20:35 ivan Exp $ =head1 BUGS