Skip to content
Snippets Groups Projects
WiSPUserLogs.php 3.17 KiB
Newer Older
Robert Anderson's avatar
Robert Anderson committed
<?php

include_once("include/db.php");


Robert Anderson's avatar
Robert Anderson committed
# Return list of user logs
Robert Anderson's avatar
Robert Anderson committed
function getWiSPUserLogs($params) {

	# Filters and sorts are the same here
	$filtersorts = array(
		'ID' => 'accounting.ID',
		'EventTimestamp' => 'accounting.EventTimestamp',
		'AcctStatusType' => 'accounting.AcctStatusType',
		'ServiceType' => 'accounting.ServiceType',
		'FramedProtocol' => 'accounting.FramedProtocol',
		'NASPortType' => 'accounting.NASPortType',
		'NASPortID' => 'accounting.NASPortID',
		'CallingStationID' => 'accounting.CallingStationID',
		'CalledStationID' => 'accounting.CalledStationID',
		'AcctSessionID' => 'accounting.AcctSessionID',
		'FramedIPAddress' => 'accounting.FramedIPAddress',
	);

Robert Anderson's avatar
Robert Anderson committed
	# Perform query
Robert Anderson's avatar
Robert Anderson committed
	$res = DBSelectSearch("
Robert Anderson's avatar
Robert Anderson committed
				SELECT
Robert Anderson's avatar
Robert Anderson committed
					accounting.ID,
Robert Anderson's avatar
Robert Anderson committed
					accounting.EventTimestamp,
					accounting.AcctStatusType,
Robert Anderson's avatar
Robert Anderson committed
					accounting.ServiceType,
					accounting.FramedProtocol,
					accounting.NASPortType,
					accounting.NASPortID,
					accounting.CallingStationID,
					accounting.CalledStationID,
					accounting.AcctSessionID,
					accounting.FramedIPAddress,
					accounting.AcctInputOctets,
					accounting.AcctInputGigawords,
					accounting.AcctOutputOctets,
					accounting.AcctOutputGigawords,
					accounting.AcctTerminateCause
Robert Anderson's avatar
Robert Anderson committed
				FROM
Robert Anderson's avatar
Robert Anderson committed
					accounting, users
Robert Anderson's avatar
Robert Anderson committed
				WHERE
Robert Anderson's avatar
Robert Anderson committed
					users.Username = accounting.Username
				AND
					users.ID = ".DBQuote($params[0])."
					",$params[1],$filtersorts,$filtersorts);
	$sth = $res[0]; $numResults = $res[1];
Robert Anderson's avatar
Robert Anderson committed

Robert Anderson's avatar
Robert Anderson committed
	# If STH is blank, return the error back to whoever requested the data
	if (!isset($sth)) {
		return $res;
	}

Robert Anderson's avatar
Robert Anderson committed
	# Loop through rows
Robert Anderson's avatar
Robert Anderson committed
	$resultArray = array();
	while ($row = $sth->fetchObject()) {

		# Input
		$acctInputMbyte = 0;

		if (isset($row->acctinputoctets) && $row->acctinputoctets > 0) {
			$acctInputMbyte += ($row->acctinputoctets / 1024) / 1024;
		}
		if (isset($row->acctinputgigawords) && $row->acctinputgigawords > 0) {
			$acctInputMbyte += ($row->acctinputgigawords * 4096);
		}

		# Output
		$acctOutputMbyte = 0;

		if (isset($row->acctoutputoctets) && $row->acctoutputoctets > 0) {
			$acctOutputMbyte += ($row->acctoutputoctets / 1024) / 1024;
		}
		if (isset($row->acctoutputgigawords) && $row->acctoutputgigawords > 0) {
			$acctOutputMbyte += ($row->acctoutputgigawords * 4096);
		}

Robert Anderson's avatar
Robert Anderson committed
		# Build array for this row
Robert Anderson's avatar
Robert Anderson committed
		$item = array();

		$item['ID'] = $row->id;
Robert Anderson's avatar
Robert Anderson committed
		# Convert to ISO format
Robert Anderson's avatar
Robert Anderson committed
		$date = new DateTime($row->eventtimestamp);
		$value = $date->format("Y-m-d H:i:s");
		$item['EventTimestamp'] = $value;
		$item['AcctStatusType'] = $row->acctstatustype;
		$item['ServiceType'] = $row->servicetype;
		$item['FramedProtocol'] = $row->framedprotocol;
		$item['NASPortType'] = $row->nasporttype;
		$item['NASPortID'] = $row->nasportid;
		$item['CallingStationID'] = $row->callingstationid;
		$item['CalledStationID'] = $row->calledstationid;
		$item['AcctSessionID'] = $row->acctsessionid;
		$item['FramedIPAddress'] = $row->framedipaddress;
		$item['AcctInputMbyte'] = $acctInputMbyte;
		$item['AcctOutputMbyte'] = $acctOutputMbyte;
		$item['ConnectTermReason'] = strRadiusTermCode($row->servicetype);

Robert Anderson's avatar
Robert Anderson committed
		# Push this row onto main array
Robert Anderson's avatar
Robert Anderson committed
		array_push($resultArray,$item);
	}

Robert Anderson's avatar
Robert Anderson committed
	# Return results
Robert Anderson's avatar
Robert Anderson committed
	return array($resultArray,$numResults);
}

# vim: ts=4