X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fsqlradius.cgi;h=b84df1a034926a54b832fe820e32dca3c6a13d0d;hb=d5f33566675ef84accc14877733e243eec95ff01;hp=9cc5958ee07c82f686c5904f22dd06f74c2be5dd;hpb=eb4cf5563939a08eba1a10d8c2a8f52205f6535b;p=freeside.git
diff --git a/httemplate/search/sqlradius.cgi b/httemplate/search/sqlradius.cgi
index 9cc5958ee..b84df1a03 100644
--- a/httemplate/search/sqlradius.cgi
+++ b/httemplate/search/sqlradius.cgi
@@ -51,6 +51,15 @@
$ip = $1;
}
+ my $prefix = $cgi->param('prefix');
+ $prefix =~ s/\D//g;
+ if ( $prefix =~ /^(\d+)$/ ) {
+ $prefix = $1;
+ $prefix = "011$prefix" unless $prefix =~ /^1/;
+ } else {
+ $prefix = '';
+ }
+
###
# field formatting subroutines
###
@@ -64,7 +73,7 @@
$svc_acct = $user2svc_acct{$user};
} else {
my %search = ();
- if ( $part_export->exporrtype eq 'sqlradius_withdomain' ) {
+ if ( $part_export->exporttype eq 'sqlradius_withdomain' ) {
my $domain;
if ( $user =~ /^([^@]+)\@([^@]+)$/ ) {
$search{'username'} = $1;
@@ -82,7 +91,8 @@
} elsif ( $part_export->exporttype eq 'sqlradius' ) {
$search{'username'} = $user;
} else {
- die "guru meditation #420";
+ die 'unknown export type '. $part_export->exporttype.
+ " for $part_export\n";
}
if ( keys %search ) {
my @svc_acct =
@@ -125,7 +135,8 @@
my $time = shift;
return ' ' if $time == 0;
my $pretty = time2str('%T%P %a %b %o %Y', $time );
- $pretty =~ s/ (\d)(st|dn|rd|th)/ $1$2/;
+ $pretty =~ s/ (\d)(st|dn|rd|th)/$1$2/;
+ $pretty;
};
my $duration_format = sub {
@@ -160,47 +171,56 @@
name => 'User',
attrib => 'UserName',
fmt => $user_format,
+ align => 'left',
},
'realm' => {
name => 'Realm',
attrib => 'Realm',
+ align => 'left',
},
'dummy' => {
name => 'Customer',
attrib => '',
fmt => $customer_format,
+ align => 'left',
},
'framedipaddress' => {
- name => 'IP Address',
+ name => 'IP Address',
attrib => 'Framed-IP-Address',
fmt => sub { my $ip = shift;
length($ip) ? $ip : ' ';
},
+ align => 'right',
},
'acctstarttime' => {
- name => 'Start time',
+ name => 'Start time',
attrib => 'Acct-Start-Time',
fmt => $time_format,
+ align => 'left',
},
'acctstoptime' => {
- name => 'End time',
+ name => 'End time',
attrib => 'Acct-Stop-Time',
fmt => $time_format,
+ align => 'left',
},
'acctsessiontime' => {
name => 'Duration',
attrib => 'Acct-Session-Time',
fmt => $duration_format,
+ align => 'right',
},
'acctinputoctets' => {
name => 'Upload', # (from user)',
attrib => 'Acct-Input-Octets',
fmt => $octets_format,
+ align => 'right',
},
'acctoutputoctets' => {
name => 'Download', # (to user)',
attrib => 'Acct-Output-Octets',
fmt => $octets_format,
+ align => 'right',
},
;
$fields{$_}->{fmt} ||= sub { length($_[0]) ? shift : ' '; }
@@ -210,30 +230,51 @@
# and finally, display the thing
###
- foreach my $part_export ( map $_->rebless,
+ foreach my $part_export (
+ #grep $_->can('usage_sessions'), qsearch( 'part_export' )
qsearch( 'part_export', { 'exporttype' => 'sqlradius' } ),
qsearch( 'part_export', { 'exporttype' => 'sqlradius_withdomain' } )
) {
%user2svc_acct = ();
+
+ my $efields = tie my %efields, 'Tie::IxHash', %fields;
+ delete $efields{'framedipaddress'} if $part_export->option('hide_ip');
+ if ( $part_export->option('hide_data') ) {
+ delete $efields{$_} foreach qw(acctinputoctets acctoutputoctets);
+ }
+ if ( $part_export->option('show_called_station') ) {
+ $efields->Splice(1, 0,
+ 'calledstationid' => {
+ 'name' => 'Destination',
+ 'attrib' => 'Called-Station-ID',
+ 'fmt' =>
+ sub { length($_[0]) ? shift : ' '; },
+ 'align' => 'left',
+ },
+ );
+ }
+
%>
<%= $part_export->exporttype %> to <%= $part_export->machine %>
<%= include( '/elements/table.html' ) %>