X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2FRecord.pm;h=020d14d8f298d8fe210e31db4198fed363047b66;hp=4286606f048b93be82436a550e64a804b384bf0c;hb=8f42b751aebda2e7dce2c363bed6f1e15b411b1d;hpb=6991d4986df7fb3a6c7c49b5ae1b3713e87a16c4 diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm index 4286606f0..020d14d8f 100644 --- a/FS/FS/Record.pm +++ b/FS/FS/Record.pm @@ -59,13 +59,13 @@ FS::Record - Database record objects $hashref = $record->hashref; $error = $record->insert; - #$error = $record->add; #depriciated + #$error = $record->add; #deprecated $error = $record->delete; - #$error = $record->del; #depriciated + #$error = $record->del; #deprecated $error = $new_record->replace($old_record); - #$error = $new_record->rep($old_record); #depriciated + #$error = $new_record->rep($old_record); #deprecated $value = $record->unique('column'); @@ -974,6 +974,34 @@ sub ut_enum { return "Illegal (enum) field $field: ". $self->getfield($field); } +=item ut_foreign_key COLUMN FOREIGN_TABLE FOREIGN_COLUMN + +Check/untaint a foreign column key. Call a regular ut_ method (like ut_number) +on the column first. + +=cut + +sub ut_foreign_key { + my( $self, $field, $table, $foreign ) = @_; + qsearchs($table, { $foreign => $self->getfield($field) }) + or return "Can't find $field ". $self->getfield($field). + " in $table.$foreign"; + ''; +} + +=item ut_foreign_keyn COLUMN FOREIGN_TABLE FOREIGN_COLUMN + +Like ut_foreign_key, except the null value is also allowed. + +=cut + +sub ut_foreign_keyn { + my( $self, $field, $table, $foreign ) = @_; + $self->getfield($field) + ? $self->ut_foreign_key($field, $table, $foreign) + : ''; +} + =item fields [ TABLE ] This can be used as both a subroutine and a method call. It returns a list @@ -1014,7 +1042,8 @@ I<$FS::Record::setup_hack> is true. Returns a DBIx::DBSchema object. sub reload_dbdef { my $file = shift || $dbdef_file; - $dbdef = load DBIx::DBSchema $file; + $dbdef = load DBIx::DBSchema $file + or die "can't load database schema from $file"; } =item dbdef