diff options
Diffstat (limited to 'FS/bin/freeside-sqlradius-reset')
-rwxr-xr-x | FS/bin/freeside-sqlradius-reset | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/FS/bin/freeside-sqlradius-reset b/FS/bin/freeside-sqlradius-reset deleted file mode 100755 index a77bad64f..000000000 --- a/FS/bin/freeside-sqlradius-reset +++ /dev/null @@ -1,118 +0,0 @@ -#!/usr/bin/perl -w - -use strict; -use vars qw( $opt_n ); -use Getopt::Std; -use FS::UID qw(adminsuidsetup); -use FS::Record qw(qsearch qsearchs); -use FS::part_export; -#use FS::svc_acct; -use FS::cust_svc; - -getopts("n"); - -my $user = shift or die &usage; -adminsuidsetup $user; - -#my $machine = shift or die &usage; - -my @exports = (); -if ( @ARGV ) { - foreach my $exportnum ( @ARGV ) { - foreach my $exporttype (qw( sqlradius sqlradius_withdomain phone_sqlradius )) { - push @exports, qsearch('part_export', { exportnum => $exportnum, - exporttype => $exporttype, } ); - } - } - } else { - @exports = qsearch('part_export', { exporttype=>'sqlradius' } ); - push @exports, qsearch('part_export', { exporttype=>'sqlradius_withdomain' } ); -} - -unless ( $opt_n ) { - foreach my $export ( @exports ) { - my $icradius_dbh = DBI->connect( - map { $export->option($_) } qw( datasrc username password ) - ) or die $DBI::errstr; - for my $table (qw( radcheck radreply usergroup )) { - my $sth = $icradius_dbh->prepare("DELETE FROM $table"); - $sth->execute or die "Can't reset $table table: ". $sth->errstr; - } - $icradius_dbh->disconnect; - } -} - -use FS::svc_Common; -$FS::svc_Common::overlimit_missing_cust_svc_nonfatal_kludge = 1; -$FS::svc_Common::overlimit_missing_cust_svc_nonfatal_kludge = 1; - -foreach my $export ( @exports ) { - - #my @svcparts = map { $_->svcpart } $export->export_svc; - my $overlimit_groups = $export->option('overlimit_groups'); - - my @svc_x = - map { $_->svc_x } - #map { qsearch('cust_svc', { 'svcpart' => $_->svcpart } ) } - #grep { qsearch('cust_svc', { 'svcpart' => $_->svcpart } ) } - # $export->export_svc; - map { @{ $_->[1] } } - grep { scalar( @{ $_->[1] } ) } - map { [ $_, [ qsearch('cust_svc', { 'svcpart' => $_->svcpart } ) ] ] } - $export->export_svc; - - - foreach my $svc_x ( @svc_x ) { - - #$svc_x->check; #set any fixed usergroup so it'll export even if all - # #svc_acct records don't have the group yet - #more efficient? - my $x = $svc_x->setfixed( $svc_x->_fieldhandlers); - unless ( ref($x) ) { - warn "WARNING: can't set fixed usergroups for svcnum ". $svc_x->svcnum. - "\n"; - } - - if ($overlimit_groups && $svc_x->overlimit) { - $svc_x->usergroup( &{ $svc_x->_fieldhandlers->{'usergroup'} } - ($svc_x, $overlimit_groups) - ); - } - - #false laziness with FS::svc_acct::insert (like it matters) - my $error = $export->export_insert($svc_x); - die $error if $error; - - } -} - -sub usage { - die "Usage:\n\n freeside-sqlradius-reset user [ exportnum, ... ]\n"; -} - -=head1 NAME - -freeside-sqlradius-reset - Command line interface to reset and recreate RADIUS SQL tables - -=head1 SYNOPSIS - - freeside-sqlradius-reset [ -n ] username [ EXPORTNUM, ... ] - -=head1 DESCRIPTION - -Deletes the radcheck, radreply and usergroup tables and repopulates them from -the Freeside database, for the specified exports, or, if no exports are -specified, for all sqlradius and sqlradius_withdomain exports. - -B<username> is a username added by freeside-adduser. - -The B<-n> option, if supplied, supresses the deletion of the existing data in -the tables. - -=head1 SEE ALSO - -L<freeside-reexport>, L<FS::part_export>, L<FS::part_export::sqlradius> - -=cut - -1; |