X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fexport_svc.pm;h=4579e6d4a535a8f2b1d21b61e89d412c7ba784a5;hp=b08f8f7c3227271975b4d4f24c77f0b55570da1f;hb=57bb423fe457ba4e13726877f53bcdf944f828f8;hpb=ded0ab5cac02f099b387de360fb6dd6bd8cbb6b4 diff --git a/FS/FS/export_svc.pm b/FS/FS/export_svc.pm index b08f8f7c3..4579e6d4a 100644 --- a/FS/FS/export_svc.pm +++ b/FS/FS/export_svc.pm @@ -1,14 +1,10 @@ package FS::export_svc; +use base qw(FS::Record); use strict; -use vars qw( @ISA ); -use FS::Record qw( qsearch qsearchs dbh ); -use FS::part_export; -use FS::part_svc; +use FS::Record qw( dbh qsearch ); #qsearchs ); use FS::svc_export_machine; -@ISA = qw(FS::Record); - =head1 NAME FS::export_svc - Object methods for export_svc records @@ -42,6 +38,8 @@ The following fields are currently supported: =item svcpart - service definition (see L) +=item role - export role (see export parameters) + =back =head1 METHODS @@ -311,32 +309,34 @@ sub check { || $self->ut_foreign_key('exportnum', 'part_export', 'exportnum') || $self->ut_number('svcpart') || $self->ut_foreign_key('svcpart', 'part_svc', 'svcpart') + || $self->ut_alphan('role') || $self->SUPER::check ; + + my $part_export = $self->part_export; + if ( exists $part_export->info->{roles} ) { + my $role = $self->get('role'); + if ( ! $role ) { + return 'must select an export role' + } + if ( ! exists($part_export->info->{roles}->{$role}) ) { + return "invalid role for export '".$part_export->exporttype."'"; + } + } else { + $self->set('role', ''); + } + + ''; } =item part_export Returns the FS::part_export object (see L). -=cut - -sub part_export { - my $self = shift; - qsearchs( 'part_export', { 'exportnum' => $self->exportnum } ); -} - =item part_svc Returns the FS::part_svc object (see L). -=cut - -sub part_svc { - my $self = shift; - qsearchs( 'part_svc', { 'svcpart' => $self->svcpart } ); -} - =item svc_export_machine Returns all export hostname records (L) for this