=item exportnum - primary key
+=item exportname - Descriptive name
+
=item machine - Machine name
=item exporttype - Export type
my $self = shift;
my $error =
$self->ut_numbern('exportnum')
+ || $self->ut_textn('exportname')
|| $self->ut_domain('machine')
|| $self->ut_alpha('exporttype')
;
$self->SUPER::check;
}
+=item label
+
+Returns a label for this export, "exportname||exportype (machine)".
+
+=cut
+
+sub label {
+ my $self = shift;
+ ($self->exportname || $self->exporttype ). ' ('. $self->machine. ')';
+}
+
#=item part_svc
#
#Returns the service definition (see L<FS::part_svc>) for this export.
qsearch('export_svc', { 'exportnum' => $self->exportnum } );
}
+=item export_device
+
+Returns a list of associated FS::export_device records.
+
+=cut
+
+sub export_device {
+ my $self = shift;
+ qsearch('export_device', { 'exportnum' => $self->exportnum } );
+}
+
=item part_export_option
Returns all options as FS::part_export_option objects (see
The elements are displayed in the UI to lead the the operator to external
configuration, monitoring, and similar tools.
+=item export_getsettings SVC_OBJECT SETTINGS_HASHREF DEFAUTS_HASHREF
+
+Adds a hashref of settings to SETTINGSREF specific to this export and
+SVC_OBJECT. The elements can be displayed in the UI on the service view.
+
+DEFAULTSREF is a hashref with the same keys where true values indicate the
+setting is a default (and thus can be displayed in the UI with less emphasis,
+or hidden by default).
+
=cut
=back
my $r = { map { %{$exports{$_}} } keys %exports };
}
+
+sub _upgrade_data { #class method
+ my ($class, %opts) = @_;
+
+ my @part_export_option = qsearch('part_export_option', { 'optionname' => 'overlimit_groups' });
+ foreach my $opt ( @part_export_option ) {
+ next if $opt->optionvalue =~ /^[\d\s]+$/ || !$opt->optionvalue;
+ my @groupnames = split(' ',$opt->optionvalue);
+ my @groupnums;
+ my $error = '';
+ foreach my $groupname ( @groupnames ) {
+ my $g = qsearchs('radius_group', { 'groupname' => $groupname } );
+ unless ( $g ) {
+ $g = new FS::radius_group {
+ 'groupname' => $groupname,
+ 'description' => $groupname,
+ };
+ $error = $g->insert;
+ die $error if $error;
+ }
+ push @groupnums, $g->groupnum;
+ }
+ $opt->optionvalue(join(' ',@groupnums));
+ $error = $opt->replace;
+ die $error if $error;
+ }
+}
+
#=item exporttype2svcdb EXPORTTYPE
#
#Returns the applicable I<svcdb> for an I<exporttype>.
}
unless ( keys %$info ) {
warn "no %info hash found in FS::part_export::$mod, skipping\n"
- unless $mod =~ /^(passwdfile|null)$/; #hack but what the heck
+ unless $mod =~ /^(passwdfile|null|.+_Common)$/; #hack but what the heck
next;
}
warn "got export info from FS::part_export::$mod: $info\n" if $DEBUG;