eedd9b6997f438116d15568a2d8af0b9f74faea0
[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 use FS::raddb;
9
10 die "Not running uid freeside!" unless checkeuid();
11
12 my %attrib2db =
13   map { $FS::raddb::attrib{lc($_)} => $_ } keys %FS::raddb::attrib;
14
15 my $user = shift or die &usage;
16 getsecrets($user);
17
18 my $dbh = adminsuidsetup $user;
19
20 ###
21
22 print "\n\n", <<END, ":";
23 Enter the additional RADIUS check attributes you need to track for
24 each user, separated by whitespace.
25 END
26 my @attributes = map { $attrib2db{lc($_)} or die "unknown attribute $_"; }
27                    split(" ",&getvalue);
28
29 sub getvalue {
30   my($x)=scalar(<STDIN>);
31   chop $x;
32   $x;
33 }
34
35 ###
36
37 my($char_d) = 80; #default maxlength for text fields
38
39 ###
40
41 foreach my $attribute ( @attributes ) {
42   foreach my $statement ( 
43     "ALTER TABLE svc_acct ADD rc_$attribute varchar($char_d) NULL",
44 #    "ALTER TABLE part_svc ADD svc_acct__rc_$attribute varchar($char_d) NULL;",
45 #    "ALTER TABLE part_svc ADD svc_acct__rc_${attribute}_flag char(1) NULL;",
46   ) {
47     $dbh->do( $statement ) or warn "Error executing $statement: ". $dbh->errstr;  }
48 }
49
50 $dbh->disconnect or die $dbh->errstr;
51
52 print "\n\n", "Now you must run dbdef-create.\n\n";
53
54 sub usage {
55   die "Usage:\n  fs-radius-add user\n"; 
56 }
57
58