From 327df8aefdcf96c9c83805570abf4cc242cf46b9 Mon Sep 17 00:00:00 2001 From: ivan Date: Sat, 13 Apr 2002 13:36:26 +0000 Subject: - documentation updates - move Critical Path export to new-style export - bin/sqlradius_reset gets a manpage and becomes FS/bin/freeside-sqlradius-reset --- FS/bin/freeside-sqlradius-reset | 73 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100755 FS/bin/freeside-sqlradius-reset (limited to 'FS/bin/freeside-sqlradius-reset') diff --git a/FS/bin/freeside-sqlradius-reset b/FS/bin/freeside-sqlradius-reset new file mode 100755 index 000000000..132be754a --- /dev/null +++ b/FS/bin/freeside-sqlradius-reset @@ -0,0 +1,73 @@ +#!/usr/bin/perl -Tw + +use strict; +use FS::UID qw(adminsuidsetup); +use FS::Record qw(qsearch qsearchs); +use FS::part_export; +use FS::svc_acct; +use FS::cust_svc; + +my $user = shift or die &usage; +adminsuidsetup $user; + +#my $machine = shift or die &usage; + +my @exports = qsearch('part_export', { 'exporttype' => 'sqlradius' } ); + +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; + } +} + +foreach my $export ( @exports ) { + + #my @svcparts = map { $_->svcpart } $export->export_svc; + + my @svc_acct = + map { qsearchs('svc_acct', { 'svcnum' => $_->svcnum } ) } + map { qsearch('cust_svc', { 'svcpart' => $_->svcpart } ) } + grep { qsearch('cust_svc', { 'svcpart' => $_->svcpart } ) } + $export->export_svc; + + foreach my $svc_acct ( @svc_acct ) { + + #false laziness with FS::svc_acct::insert (like it matters) + my $error = $export->export_insert($svc_acct); + die $error if $error; + + } +} + +sub usage { + #die "Usage:\n\n sqlradius_reset user machine\n"; + die "Usage:\n\n sqlradius_reset user\n"; +} + +=head1 NAME + +freeside-sqlradius-reset - Command line interface to reset and recreate RADIUS SQL tables + +=head1 SYNOPSIS + + freeside-sqlradius-reset username + +=head1 DESCRIPTION + +Deletes the radcheck, radreply and usergroup tables and repopulates them from +the Freeside database, for all sqlradius exports. + +B is a username added by freeside-adduser. + +=head1 SEE ALSO + +, L + +=cut + + + -- cgit v1.2.1 From 4aaa65f643469cf2df1d97f5e12e05d0122d9570 Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 29 May 2002 20:45:04 +0000 Subject: eliminate harmless "Database handle destroyed without explicit disconnect" errors --- FS/bin/freeside-sqlradius-reset | 1 + 1 file changed, 1 insertion(+) (limited to 'FS/bin/freeside-sqlradius-reset') diff --git a/FS/bin/freeside-sqlradius-reset b/FS/bin/freeside-sqlradius-reset index 132be754a..41f3358f6 100755 --- a/FS/bin/freeside-sqlradius-reset +++ b/FS/bin/freeside-sqlradius-reset @@ -22,6 +22,7 @@ foreach my $export ( @exports ) { my $sth = $icradius_dbh->prepare("DELETE FROM $table"); $sth->execute or die "Can't reset $table table: ". $sth->errstr; } + $icradius_dbh->disconnect; } foreach my $export ( @exports ) { -- cgit v1.2.1 From 96d1ff9741744ce60dbc123fa92ec794dbac2d17 Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 3 Jul 2002 01:01:26 +0000 Subject: fix usage message --- FS/bin/freeside-sqlradius-reset | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'FS/bin/freeside-sqlradius-reset') diff --git a/FS/bin/freeside-sqlradius-reset b/FS/bin/freeside-sqlradius-reset index 41f3358f6..9cb2e2905 100755 --- a/FS/bin/freeside-sqlradius-reset +++ b/FS/bin/freeside-sqlradius-reset @@ -46,7 +46,7 @@ foreach my $export ( @exports ) { sub usage { #die "Usage:\n\n sqlradius_reset user machine\n"; - die "Usage:\n\n sqlradius_reset user\n"; + die "Usage:\n\n freeside-sqlradius-reset user\n"; } =head1 NAME -- cgit v1.2.1 From 8b8a9f09b5072db2af7f08d49d916b91f0b1bac7 Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 3 Jul 2002 01:05:24 +0000 Subject: pod --- FS/bin/freeside-sqlradius-reset | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'FS/bin/freeside-sqlradius-reset') diff --git a/FS/bin/freeside-sqlradius-reset b/FS/bin/freeside-sqlradius-reset index 9cb2e2905..9d3a6a700 100755 --- a/FS/bin/freeside-sqlradius-reset +++ b/FS/bin/freeside-sqlradius-reset @@ -66,7 +66,7 @@ B is a username added by freeside-adduser. =head1 SEE ALSO -, L +L, L, L =cut -- cgit v1.2.1 From 70997699eb64ce36ca408214cfe4dbc502d7ca58 Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 30 Jun 2003 12:22:24 +0000 Subject: adding sqlradius_withdomain export including realms, closes: bug#514 --- FS/bin/freeside-sqlradius-reset | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'FS/bin/freeside-sqlradius-reset') diff --git a/FS/bin/freeside-sqlradius-reset b/FS/bin/freeside-sqlradius-reset index 9d3a6a700..74f90a582 100755 --- a/FS/bin/freeside-sqlradius-reset +++ b/FS/bin/freeside-sqlradius-reset @@ -12,7 +12,9 @@ adminsuidsetup $user; #my $machine = shift or die &usage; -my @exports = qsearch('part_export', { 'exporttype' => 'sqlradius' } ); +my @exports = qsearch('part_export', { exporttype=>'sqlradius' } ); +push @exports, qsearch('part_export', { exporttype=>'sqlradius_withdomain' } ); + foreach my $export ( @exports ) { my $icradius_dbh = DBI->connect( -- cgit v1.2.1 From 1df9be4f5d6129a768b809212d83e0648786ac0f Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 27 Aug 2004 11:16:03 +0000 Subject: add option to specify exports --- FS/bin/freeside-sqlradius-reset | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'FS/bin/freeside-sqlradius-reset') diff --git a/FS/bin/freeside-sqlradius-reset b/FS/bin/freeside-sqlradius-reset index 74f90a582..95b7ef21e 100755 --- a/FS/bin/freeside-sqlradius-reset +++ b/FS/bin/freeside-sqlradius-reset @@ -12,9 +12,18 @@ adminsuidsetup $user; #my $machine = shift or die &usage; -my @exports = qsearch('part_export', { exporttype=>'sqlradius' } ); -push @exports, qsearch('part_export', { exporttype=>'sqlradius_withdomain' } ); - +my @exports = (); +if ( @_ ) { + foreach my $exportnum ( @_ ) { + foreach my $exporttype (qw( sqlradius sqlradius_withdomain )) { + push @exports, qsearch('part_export', { exportnum => $exportnum, + exporttype => $exporttype, } ); + } + } + } else { + @exports = qsearch('part_export', { exporttype=>'sqlradius' } ); + push @exports, qsearch('part_export', { exporttype=>'sqlradius_withdomain' } ); +} foreach my $export ( @exports ) { my $icradius_dbh = DBI->connect( @@ -47,8 +56,7 @@ foreach my $export ( @exports ) { } sub usage { - #die "Usage:\n\n sqlradius_reset user machine\n"; - die "Usage:\n\n freeside-sqlradius-reset user\n"; + die "Usage:\n\n freeside-sqlradius-reset user [ exportnum, ... ]\n"; } =head1 NAME @@ -57,12 +65,13 @@ freeside-sqlradius-reset - Command line interface to reset and recreate RADIUS S =head1 SYNOPSIS - freeside-sqlradius-reset username + freeside-sqlradius-reset username [ EXPORTNUM, ... ] =head1 DESCRIPTION Deletes the radcheck, radreply and usergroup tables and repopulates them from -the Freeside database, for all sqlradius exports. +the Freeside database, for the specified exports, or, if no exports are +specified, for all sqlradius and sqlradius_withdomain exports. B is a username added by freeside-adduser. -- cgit v1.2.1 From 4f9e876b1e2549e09bafc85289951bbb973194aa Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 27 Aug 2004 11:33:21 +0000 Subject: oops use @ARGV not @_ --- FS/bin/freeside-sqlradius-reset | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'FS/bin/freeside-sqlradius-reset') diff --git a/FS/bin/freeside-sqlradius-reset b/FS/bin/freeside-sqlradius-reset index 95b7ef21e..d87cd4511 100755 --- a/FS/bin/freeside-sqlradius-reset +++ b/FS/bin/freeside-sqlradius-reset @@ -13,8 +13,8 @@ adminsuidsetup $user; #my $machine = shift or die &usage; my @exports = (); -if ( @_ ) { - foreach my $exportnum ( @_ ) { +if ( @ARGV ) { + foreach my $exportnum ( @ARGV ) { foreach my $exporttype (qw( sqlradius sqlradius_withdomain )) { push @exports, qsearch('part_export', { exportnum => $exportnum, exporttype => $exporttype, } ); -- cgit v1.2.1 From 5d8208573e07b1c72b386b65dc10c6616d9192ac Mon Sep 17 00:00:00 2001 From: ivan Date: Tue, 19 Oct 2004 11:50:02 +0000 Subject: isn't run with elevated privledges, so -T not necessary --- FS/bin/freeside-sqlradius-reset | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'FS/bin/freeside-sqlradius-reset') diff --git a/FS/bin/freeside-sqlradius-reset b/FS/bin/freeside-sqlradius-reset index d87cd4511..11cbe9e36 100755 --- a/FS/bin/freeside-sqlradius-reset +++ b/FS/bin/freeside-sqlradius-reset @@ -1,4 +1,4 @@ -#!/usr/bin/perl -Tw +#!/usr/bin/perl -w use strict; use FS::UID qw(adminsuidsetup); -- cgit v1.2.1 From 803369ee5939d4b82a1784b392f2264a05acabf7 Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 17 Oct 2005 06:46:02 +0000 Subject: set any fixed usergroup before exporting so it'll export even if all svc_acct records don't have the group yet --- FS/bin/freeside-sqlradius-reset | 3 +++ 1 file changed, 3 insertions(+) (limited to 'FS/bin/freeside-sqlradius-reset') diff --git a/FS/bin/freeside-sqlradius-reset b/FS/bin/freeside-sqlradius-reset index 11cbe9e36..2ac5012d4 100755 --- a/FS/bin/freeside-sqlradius-reset +++ b/FS/bin/freeside-sqlradius-reset @@ -48,6 +48,9 @@ foreach my $export ( @exports ) { foreach my $svc_acct ( @svc_acct ) { + $svc_acct->check; #set any fixed usergroup so it'll export even if all + #svc_acct records don't have the group yet + #false laziness with FS::svc_acct::insert (like it matters) my $error = $export->export_insert($svc_acct); die $error if $error; -- cgit v1.2.1