tyop
[freeside.git] / bin / fs-radius-add-reply
1 #!/usr/bin/perl -Tw
2
3 # quick'n'dirty hack of fs-setup to add radius attributes
4
5 use strict;
6 use DBI;
7 use FS::UID qw(adminsuidsetup checkeuid getsecrets);
8 die "Not running uid freeside!" unless checkeuid();
9
10 my $user = shift or die &usage;
11 getsecrets($user);
12
13 my $dbh = adminsuidsetup $user;
14
15 ###
16
17 print "\n\n", <<END, ":";
18 Enter the additional RADIUS reply attributes you need to track for
19 each user, separated by whitespace.
20 END
21 my @attributes = map { s/\-/_/g; $_; } split(" ",&getvalue);
22
23 sub getvalue {
24   my($x)=scalar(<STDIN>);
25   chop $x;
26   $x;
27 }
28
29 ###
30
31 my($char_d) = 80; #default maxlength for text fields
32
33 ###
34
35 foreach my $attribute ( @attributes ) {
36   foreach my $statement ( 
37     "ALTER TABLE svc_acct ADD radius_$attribute varchar($char_d) NULL",
38     "ALTER TABLE part_svc ADD svc_acct__radius_$attribute varchar($char_d) NULL;",
39     "ALTER TABLE part_svc ADD svc_acct__radius_${attribute}_flag char(1) NULL;",
40   ) {
41     $dbh->do( $statement ) or warn "Error executing $statement: ". $dbh->errstr;  }
42 }
43
44 $dbh->disconnect or die $dbh->errstr;
45
46 print "\n\n", "Now you must run dbdef-create.\n\n";
47
48 sub usage {
49   die "Usage:\n  fs-radius-add user\n"; 
50 }
51
52