package FS::part_export::sqlradius;
-use vars qw(@ISA $DEBUG %info %options $notes1 $notes2);
+use vars qw(@ISA @EXPORT_OK $DEBUG %info %options $notes1 $notes2);
+use Exporter;
use Tie::IxHash;
use FS::Record qw( dbh qsearch qsearchs str2time_sql );
use FS::part_export;
use Carp qw( cluck );
@ISA = qw(FS::part_export);
+@EXPORT_OK = qw( sqlradius_connect );
$DEBUG = 0;
type => 'checkbox',
label => 'Show the Called-Station-ID on session reports',
},
- 'overlimit_groups' => { label => 'Radius groups to assign to svc_acct which has exceeded its bandwidth or time limit', } ,
+ 'overlimit_groups' => { label => 'Radius groups to assign to svc_acct which has exceeded its bandwidth or time limit (if not overridden by overlimit_groups global or per-agent config)', } ,
'groups_susp_reason' => { label =>
'Radius group mapping to reason (via template user) (svcnum|username|username@domain reasonnum|reason)',
type => 'textarea',
$notes2 = <<'END';
An existing RADIUS database will be updated in realtime, but you can use
-<a href="../docs/man/bin/freeside-sqlradius-reset">freeside-sqlradius-reset</a>
+<a href="http://www.freeside.biz/mediawiki/index.php/Freeside:1.9:Documentation:Developer/bin/freeside-sqlradius-reset">freeside-sqlradius-reset</a>
to delete the entire RADIUS database and repopulate the tables from the
Freeside database. See the
<a href="http://search.cpan.org/dist/DBI/DBI.pm#connect">DBI documentation</a>
}
sub _export_insert {
- my($self, $svc_acct) = (shift, shift);
+ my($self, $svc_x) = (shift, shift);
foreach my $table (qw(reply check)) {
my $method = "radius_$table";
- my %attrib = $svc_acct->$method();
+ my %attrib = $svc_x->$method();
next unless keys %attrib;
- my $err_or_queue = $self->sqlradius_queue( $svc_acct->svcnum, 'insert',
- $table, $self->export_username($svc_acct), %attrib );
+ my $err_or_queue = $self->sqlradius_queue( $svc_x->svcnum, 'insert',
+ $table, $self->export_username($svc_x), %attrib );
return $err_or_queue unless ref($err_or_queue);
}
- my @groups = $svc_acct->radius_groups;
+ my @groups = $svc_x->radius_groups;
if ( @groups ) {
- cluck localtime(). ": queuing usergroup_insert for ". $svc_acct->svcnum.
- " (". $self->export_username($svc_acct). " with ". join(", ", @groups)
+ cluck localtime(). ": queuing usergroup_insert for ". $svc_x->svcnum.
+ " (". $self->export_username($svc_x). " with ". join(", ", @groups)
if $DEBUG;
my $err_or_queue = $self->sqlradius_queue(
- $svc_acct->svcnum, 'usergroup_insert',
- $self->export_username($svc_acct), @groups );
+ $svc_x->svcnum, 'usergroup_insert',
+ $self->export_username($svc_x), @groups );
return $err_or_queue unless ref($err_or_queue);
}
'';
}
sub _export_delete {
- my( $self, $svc_acct ) = (shift, shift);
- my $err_or_queue = $self->sqlradius_queue( $svc_acct->svcnum, 'delete',
- $self->export_username($svc_acct) );
+ my( $self, $svc_x ) = (shift, shift);
+ my $err_or_queue = $self->sqlradius_queue( $svc_x->svcnum, 'delete',
+ $self->export_username($svc_x) );
ref($err_or_queue) ? '' : $err_or_queue;
}
my $opt = {};
my($start, $end, $svc_acct, $ip, $prefix) = ( '', '', '', '', '');
if ( ref($_[0]) ) {
- my $opt = shift;
+ $opt = shift;
$start = $opt->{stoptime_start};
$end = $opt->{stoptime_end};
$svc_acct = $opt->{svc_acct};
);
my @param = ();
- my @where = '';
+ my @where = ();
if ( $svc_acct ) {
my $username = $self->export_username($svc_acct);
=cut
-sub update_svc_acct {
+sub update_svc {
my $self = shift;
my $conf = new FS::Conf;
$UserName = lc($UserName) unless $conf->exists('username-uppercase');
- my %search = ( 'username' => $UserName );
+ #my %search = ( 'username' => $UserName );
my $extra_sql = '';
if ( ref($self) =~ /withdomain/ ) { #well...
my @part_export = ();
push @part_export, qsearch('part_export', { 'exporttype' => $_ } )
- foreach qw(sqlradius sqlradius_withdomain radiator);
+ foreach qw( sqlradius sqlradius_withdomain radiator phone_sqlradius );
@part_export;
}