# 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 => '-',
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 {
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');