quick hack to add RADIUS attributes
authorivan <ivan>
Wed, 28 Jun 2000 10:48:42 +0000 (10:48 +0000)
committerivan <ivan>
Wed, 28 Jun 2000 10:48:42 +0000 (10:48 +0000)
bin/fs-radius-add [new file with mode: 0755]

diff --git a/bin/fs-radius-add b/bin/fs-radius-add
new file mode 100755 (executable)
index 0000000..376b7a7
--- /dev/null
@@ -0,0 +1,53 @@
+#!/usr/bin/perl -Tw
+
+# quick'n'dirty hack of fs-setup to add radius attributes
+
+use strict;
+use DBI;
+use FS::UID qw(adminsuidsetup checkeuid);
+die "Not running uid freeside!" unless checkeuid();
+
+my $user = shift or die &usage;
+getsecrets($user);
+
+my $dbh = adminsuidsetup $user;
+
+###
+
+print "\n\n", <<END, ":";
+Enter the additional RADIUS attributes you need to track for
+each user, separated by whitespace.
+END
+my @attributes = map { s/\-/_/g; $_; } split(" ",&getvalue);
+
+sub getvalue {
+  my($x)=scalar(<STDIN>);
+  chop $x;
+  $x;
+}
+
+###
+
+my($char_d) = 80; #default maxlength for text fields
+
+###
+
+foreach my $attribute ( @attributes ) {
+  foreach my $statement ( 
+    "ALTER TABLE svc_acct ADD radius_$attribute varchar($char_d) NULL",
+    "ALTER TABLE svc_acct ADD radius_$attribute varchar($char_d) NULL",
+    "ALTER TABLE part_svc ADD svc_acct__radius_$attribute varchar($char_d) NULL;",
+    "ALTER TABLE part_svc ADD svc_acct__radius_${attribute}_flag char(1) NULL;",
+  ) {
+    $dbh->do( $statement ) or warn "Error executing $statement: ". $dbh->errstr;  }
+}
+
+$dbh->disconnect or die $dbh->errstr;
+
+print "\n\n", "Now you must run dbdef-create.\n\n";
+
+sub usage {
+  die "Usage:\n  fs-radius-add user\n"; 
+}
+
+