-<% include( '/elements/header.html', 'RADIUS Sessions',
- include('/elements/menubar.html',
- 'Main menu' => $p, # popurl(2),
- ),
-
- )
-%>
+<% include( '/elements/header.html', 'RADIUS Sessions') %>
% ###
% # and finally, display the thing
</TR>
% foreach my $session (
-% @{ $part_export->usage_sessions(
-% $beginning, $ending, $cgi_svc_acct, $ip, $prefix, ) }
+% @{ $part_export->usage_sessions( {
+% 'stoptime_start' => $beginning,
+% 'stoptime_end' => $ending,
+% 'session_status' => $status,
+% 'starttime_start' => $starttime_beginning,
+% 'starttime_end' => $starttime_ending,
+% 'svc_acct' => $cgi_svc_acct,
+% 'ip' => $ip,
+% 'prefix' => $prefix,
+% 'summarize' => $summarize,
+% } )
+% }
% ) {
% if ( $bgcolor eq $bgcolor1 ) {
% $bgcolor = $bgcolor2;
% }
-
<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('List rating data');
+
###
# parse cgi params
###
+my $summarize = 0;
+$summarize = 1 if $cgi->param('summarize') eq 'Y';
+
#sort of false laziness w/cust_pay.cgi
-my $beginning = '';
-my $ending = '';
-if ( $cgi->param('beginning')
- && $cgi->param('beginning') =~ /^([ 0-9\-\/\:\w]{0,54})$/ ) {
- $beginning = str2time($1);
+my( $beginning, $ending ) = ( '', '' );
+if ( $cgi->param('stoptime_beginning')
+ && $cgi->param('stoptime_beginning') =~ /^([ 0-9\-\/\:\w]{0,54})$/ ) {
+ $beginning = parse_datetime($1);
}
-if ( $cgi->param('ending')
- && $cgi->param('ending') =~ /^([ 0-9\-\/\:\w]{0,54})$/ ) {
- $ending = str2time($1); # + 86399;
+if ( $cgi->param('stoptime_ending')
+ && $cgi->param('stoptime_ending') =~ /^([ 0-9\-\/\:\w]{0,54})$/ ) {
+ $ending = parse_datetime($1); # + 86399;
}
if ( $cgi->param('begin') && $cgi->param('begin') =~ /^(\d+)$/ ) {
$beginning = $1;
$ending = $1;
}
+my $status = '';
+if ( $cgi->param('session_status') =~ /^(closed|open)$/ ) {
+ $status = $1;
+}
+
+my( $starttime_beginning, $starttime_ending ) = ( '', '' );
+if ( $cgi->param('starttime_beginning')
+ && $cgi->param('starttime_beginning') =~ /^([ 0-9\-\/\:\w]{0,54})$/ ) {
+ $starttime_beginning = parse_datetime($1);
+}
+if ( $cgi->param('starttime_ending')
+ && $cgi->param('starttime_ending') =~ /^([ 0-9\-\/\:\w]{0,54})$/ ) {
+ $starttime_ending = parse_datetime($1); # + 86399;
+}
+
my $cgi_svc_acct = '';
if ( $cgi->param('svcnum') =~ /^(\d+)$/ ) {
$cgi_svc_acct = qsearchs( 'svc_acct', { 'svcnum' => $1 } );
$pretty;
};
+my $time_format_or_open = sub {
+ my $time = shift;
+ return '<CENTER>OPEN</CENTER>' if $time == 0;
+ &{$time_format}($time);
+};
+
my $duration_format = sub {
my $seconds = shift;
+ return '' if $seconds eq ''; # open session
my $hour = int($seconds/3600);
my $min = int( ($seconds%3600) / 60 );
my $sec = $seconds%60;
# the fields
###
-tie my %fields, 'Tie::IxHash',
+my %fields;
+if ( $summarize ) {
+tie %fields, 'Tie::IxHash',
+ 'username' => {
+ name => 'User',
+ attrib => 'UserName',
+ fmt => $user_format,
+ align => 'left',
+ },
+ 'dummy' => {
+ name => 'Customer',
+ attrib => '',
+ fmt => $customer_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',
+ },
+;
+} else {
+tie %fields, 'Tie::IxHash',
'username' => {
name => 'User',
attrib => 'UserName',
'acctstoptime' => {
name => 'End time',
attrib => 'Acct-Stop-Time',
- fmt => $time_format,
+ fmt => $time_format_or_open,
align => 'left',
},
'acctsessiontime' => {
align => 'right',
},
;
+}
$fields{$_}->{fmt} ||= sub { length($_[0]) ? shift : ' '; }
foreach keys %fields;