435f3e88a81217105d857d45a5aa02c1faf84583
[freeside.git] / bin / fs-radius-add-check
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 check 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 rc_$attribute varchar($char_d) NULL",
38     "ALTER TABLE svc_acct ADD rc_$attribute varchar($char_d) NULL",
39     "ALTER TABLE part_svc ADD svc_acct__rc_$attribute varchar($char_d) NULL;",
40     "ALTER TABLE part_svc ADD svc_acct__rc_${attribute}_flag char(1) NULL;",
41   ) {
42     $dbh->do( $statement ) or warn "Error executing $statement: ". $dbh->errstr;  }
43 }
44
45 $dbh->disconnect or die $dbh->errstr;
46
47 print "\n\n", "Now you must run dbdef-create.\n\n";
48
49 sub usage {
50   die "Usage:\n  fs-radius-add user\n"; 
51 }
52
53