fix RADIUS attribute capitalization
[freeside.git] / bin / fs-radius-add-reply
index 23a8d78..d2f2e11 100755 (executable)
@@ -5,8 +5,13 @@
 use strict;
 use DBI;
 use FS::UID qw(adminsuidsetup checkeuid getsecrets);
+use FS::raddb;
+
 die "Not running uid freeside!" unless checkeuid();
 
+my %attrib2db =
+  map { $FS::raddb::attrib{lc($_)} => $_ } keys %FS::raddb::attrib;
+
 my $user = shift or die &usage;
 getsecrets($user);
 
@@ -18,7 +23,8 @@ print "\n\n", <<END, ":";
 Enter the additional RADIUS reply attributes you need to track for
 each user, separated by whitespace.
 END
-my @attributes = map { s/\-/_/g; $_; } split(" ",&getvalue);
+my @attributes = map { $attrib2db{lc($_)} or die "unknown attribute $_"; }
+                   split(" ",&getvalue);
 
 sub getvalue {
   my($x)=scalar(<STDIN>);
@@ -35,9 +41,8 @@ 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;",
+#    "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;  }
 }