# 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 => '-',
+ },
'mac_as_password' => {
type => 'checkbox',
default => '1',
'radius_password' => { label=>'Fixed password' },
'ip_addr_as' => { label => 'Send IP address as',
default => 'Framed-IP-Address' },
-;
+ 'export_attrs' => {
+ type => 'checkbox',
+ label => 'Export RADIUS group attributes to this database',
+ },
+ ;
%info = (
'svc' => 'svc_broadband',
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);
- $svc_broadband->mac_addr;
+ my $mac_addr = $svc_broadband->mac_addr;
+ $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') ) {
- $check{$password_attrib} = $svc_broadband->mac_addr; #formatting?
+ $check{$password_attrib} = $self->_mac_format($svc_broadband->mac_addr);
}
elsif ( length( $self->option('radius_password',1)) ) {
$check{$password_attrib} = $self->option('radius_password');