select case of MAC address for export, #15478
authormark <mark>
Thu, 8 Dec 2011 21:42:06 +0000 (21:42 +0000)
committermark <mark>
Thu, 8 Dec 2011 21:42:06 +0000 (21:42 +0000)
FS/FS/part_export/broadband_sqlradius.pm

index dc117b0..45f286f 100644 (file)
@@ -26,6 +26,11 @@ tie %options, 'Tie::IxHash',
 #    type  => 'checkbox',
 #    label => 'Hide IP address on session reports',
 #  },
+  'mac_case' => {
+    label => 'Export MAC address as',
+    type  => 'select',
+    options => [ qw(uppercase lowercase) ],
+  },
   'mac_delimiter' => {
     label => 'Separate MAC address octets with',
     default => '-',
@@ -71,10 +76,19 @@ END
 
 sub rebless { shift; }
 
+sub _mac_format {
+  my $self = shift;
+  my $addr = shift;
+  if ( $self->option('mac_case',1) eq 'lowercase' ) {
+    $addr = lc($addr);
+  }
+  join( ($self->option('mac_delimiter',1) || ''), $addr =~ /../g );
+}
+
 sub export_username {
   my($self, $svc_broadband) = (shift, shift);
   my $mac_addr = $svc_broadband->mac_addr;
-  join( ($self->option('mac_delimiter',1) || ''), $mac_addr =~ /../g );
+  $self->_mac_format($svc_broadband->mac_addr);
 }
 
 sub radius_reply {
@@ -92,9 +106,7 @@ sub radius_check {
   my $password_attrib = $conf->config('radius-password') || 'Password';
   my %check;
   if ( $self->option('mac_as_password') ) {
-    my $mac_addr = $svc_broadband->mac_addr;
-    $check{$password_attrib} =
-      join( ($self->option('mac_delimiter',1) || ''), $mac_addr =~ /../g );
+    $check{$password_attrib} = $self->_mac_format($svc_broadband->mac_addr);
   }
   elsif ( length( $self->option('radius_password',1)) ) {
     $check{$password_attrib} = $self->option('radius_password');