Skip to content
Snippets Groups Projects
ajax.php 29.6 KiB
Newer Older
<?php
	# Ajax to PHP
	# Copyright (C) 2007-2009, AllWorldIT
	# 
	# This program is free software; you can redistribute it and/or modify
	# it under the terms of the GNU General Public License as published by
	# the Free Software Foundation; either version 2 of the License, or
	# (at your option) any later version.
	# 
	# This program is distributed in the hope that it will be useful,
	# but WITHOUT ANY WARRANTY; without even the implied warranty of
	# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	# GNU General Public License for more details.
	# 
	# You should have received a copy of the GNU General Public License along
	# with this program; if not, write to the Free Software Foundation, Inc.,
	# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

	# Requires / Includes
Robert Anderson's avatar
Robert Anderson committed
	include_once("include/ajax/json.php");
Robert Anderson's avatar
Robert Anderson committed
	include_once("include/ajax/functions/AdminUsers.php");
	include_once("include/ajax/functions/AdminUserAttributes.php");
	include_once("include/ajax/functions/AdminUserGroups.php");
	include_once("include/ajax/functions/AdminUserLogs.php");
	include_once("include/ajax/functions/AdminUserTopups.php");
Robert Anderson's avatar
Robert Anderson committed
	include_once("include/ajax/functions/AdminGroups.php");
	include_once("include/ajax/functions/AdminGroupAttributes.php");
	include_once("include/ajax/functions/AdminGroupMembers.php");

Robert Anderson's avatar
Robert Anderson committed
	include_once("include/ajax/functions/AdminRealms.php");
	include_once("include/ajax/functions/AdminRealmAttributes.php");
	include_once("include/ajax/functions/AdminRealmMembers.php");
	include_once("include/ajax/functions/AdminClients.php");
	include_once("include/ajax/functions/AdminClientAttributes.php");
	include_once("include/ajax/functions/AdminClientRealms.php");

Robert Anderson's avatar
Robert Anderson committed
	include_once("include/ajax/functions/WiSPUsers.php");
	include_once("include/ajax/functions/WiSPLocations.php");
	include_once("include/ajax/functions/WiSPLocationMembers.php");
Robert Anderson's avatar
Robert Anderson committed
	include_once("include/ajax/functions/WiSPUserLogs.php");
Robert Anderson's avatar
Robert Anderson committed
	include_once("include/ajax/functions/WiSPUserTopups.php");
	define('RES_OK',0);
	define('RES_ERR',-1);


/*
 * AJAX Interface to SMEngine SOAP
 */

 	# Fire an exception off to Ajax
	function ajaxException($msg) {
/*
		$res = array(
			'success' => FALSE,
			'errors' => array(
				$msg
			)
		);
		echo json_encode($res);
*/
Robert Anderson's avatar
Robert Anderson committed
//		echo json_encode($msg);
		jsonError(-1,$msg);
		exit;
	}

	# PHP exception handler
	function exception_handler($exception) {
		ajaxException("Exception: ". $exception->getMessage());
	}

	# Set PHP exception handler
	set_exception_handler('exception_handler');


	if (!isset($_REQUEST['SOAPUsername']) || empty($_REQUEST['SOAPUsername'])) {
		ajaxException("SOAPUsername undefined");
	}
	if (!is_string($_REQUEST['SOAPUsername'])) {
		ajaxException("SOAPUsername is not a string");
	}
	$username = $_REQUEST['SOAPUsername'];

	if (!isset($_REQUEST['SOAPPassword']) || empty($_REQUEST['SOAPPassword'])) {
		ajaxEception("SOAPPassword undefined");
	}
	if (!is_string($_REQUEST['SOAPPassword'])) {
		ajaxException("SOAPPassword is not a string");
	}
	$password = $_REQUEST['SOAPPassword'];

	if (!isset($_REQUEST['SOAPAuthType']) || empty($_REQUEST['SOAPAuthType'])) {
		ajaxException("SOAPAuthType undefined");
	}
	if (!is_string($_REQUEST['SOAPAuthType'])) {
		ajaxException("SOAPAuthType is not a string");
	}
	$authType = $_REQUEST['SOAPAuthType'];

	if (!isset($_REQUEST['SOAPModule']) || empty($_REQUEST['SOAPModule'])) {
		ajaxException("SOAPModule undefined");
	}
	if (!is_string($_REQUEST['SOAPModule'])) {
		ajaxException("SOAPModule is not a string");
	}
	$module = $_REQUEST['SOAPModule'];

	if (!isset($_REQUEST['SOAPFunction']) || empty($_REQUEST['SOAPFunction'])) {
		ajaxException("SOAPFunction undefined");
	}
	if (!is_string($_REQUEST['SOAPFunction'])) {
		ajaxException("SOAPFunction is not a string");
	}
	$function = $_REQUEST['SOAPFunction'];

	/*
		__search
		ID,__search
		1:Name,1:Contact,1:Telephone,1:Email
	*/

	$soapParamTemplate = explode(',',$_REQUEST['SOAPParams']);
	$soapParams = array();
	foreach ($soapParamTemplate as $param) {
		# Special case '__search'
		if ($param == "__search") {
			# Build hash and push into param list
			$search = array(
				'Filter' => isset($_REQUEST['filter']) ? $_REQUEST['filter'] : '',
Robert Anderson's avatar
Robert Anderson committed
				'Start' => isset($_REQUEST['start']) ? $_REQUEST['start'] : NULL,
				'Limit' => isset($_REQUEST['limit']) ? $_REQUEST['limit'] : NULL,
				'Sort' => isset($_REQUEST['sort']) ? $_REQUEST['sort'] : '',
				'SortDirection' => isset($_REQUEST['dir']) ? $_REQUEST['dir'] : '',
			);
			array_push($soapParams,$search);

		# Special case '__null'
		} elseif ($param == "__null") {
			array_push($soapParams,NULL);

		# Everything else
		} else {
			# Split off param number if we're using it
			$items = explode(':',$param);

			# We have a parameter number
			if (count($items) > 1) {
				$array_pos = $items[0];
				$array_item = $items[1];

				# Initialize array
				if (!isset($soapParams[$array_pos])) {
					$soapParams[$array_pos] = array();
				}
				# Check if we have an explicit type
				if (isset($items[2])) {
					$array_type = $items[2];
					# Check type
					if ($array_type == "boolean") {
						# Checkboxes/booleans are undefined if false
						if (isset($_REQUEST[$array_item])) {
							$item_value = 'true';
						} else {
							$item_value = 'false';
						}
					# And bitch if we invalid
					} else {
						ajaxException("Unknown AJAX=>SOAP type: '$array_type'");
					}
				} else {
					$item_value = isset($_REQUEST[$array_item]) ? $_REQUEST[$array_item] : NULL;
				}
				# Set item
				$soapParams[$array_pos][$array_item] = $item_value;

			} else {
				array_push($soapParams,$_REQUEST[$items[0]]);
			}
		}
	}

	switch ($function) {
		# addAdminClientRealm.js functions
		case "addAdminClientRealm":

			$res = addAdminClientRealm($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "removeAdminClientRealm":

			$res = removeAdminClientRealm($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "getAdminClientRealms":

			$res = getAdminClientRealms($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());

			break;

		# AdminClients.js functions
		case "updateAdminClient":

			$res = updateAdminClient($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "createAdminClient":

			$res = createAdminClient($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "removeAdminClient":

			$res = removeAdminClient($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "getAdminClients":

			$res = getAdminClients($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->addField('AccessList','string');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());
			break;

		case "getAdminClient":
			$rawData = getAdminClient($soapParams);

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->addField('AccessList','string');
			$res->parseHash($rawData);

			echo json_encode($res->export());
			break;

		# AdminClientAttributes.js functions
		case "addAdminClientAttribute":

			$res = addAdminClientAttribute($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "updateAdminClientAttribute":

			$res = updateAdminClientAttribute($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "getAdminClientAttribute":
			$rawData = getAdminClientAttribute($soapParams);

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->addField('Operator','string');
			$res->addField('Value','string');
			$res->addField('Disabled','boolean');
			$res->parseHash($rawData);

			echo json_encode($res->export());
			break;

		case "getAdminClientAttributes":

			$res = getAdminClientAttributes($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->addField('Operator','string');
			$res->addField('Value','string');
			$res->addField('Disabled','boolean');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());
			break;

		case "removeAdminClientAttribute":

			$res = removeAdminClientAttribute($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
Robert Anderson's avatar
Robert Anderson committed
		case "getWiSPUserLogsSummary":

			$res = getWiSPUserLogsSummary($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->addField('uptimeCap','int');
			$res->addField('trafficCap','int');
			$res->addField('trafficCurrentTopupUsed','int');
			$res->addField('trafficCurrentTopupCap','int');
			$res->addField('uptimeCurrentTopupUsed','int');
			$res->addField('uptimeCurrentTopupCap','int');
			$res->addField('trafficTopupRemaining','int');
			$res->addField('uptimeTopupRemaining','int');
			$res->parseHash($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());

			break;
	
		case "getAdminUserLogsSummary":

			$res = getAdminUserLogsSummary($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->addField('uptimeCap','int');
			$res->addField('trafficCap','int');
			$res->addField('trafficCurrentTopupUsed','int');
			$res->addField('trafficCurrentTopupCap','int');
			$res->addField('uptimeCurrentTopupUsed','int');
			$res->addField('uptimeCurrentTopupCap','int');
			$res->addField('trafficTopupRemaining','int');
			$res->addField('uptimeTopupRemaining','int');
			$res->parseHash($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());

			break;
	
		# AdminUserTopups.js functions
		case "getAdminUserTopups":

			$res = getAdminUserTopups($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Timestamp','date');
			$res->addField('Type','int');
			$res->addField('Value','int');
			$res->addField('ValidFrom','string');
			$res->addField('ValidTo','string');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());

			break;
	
		case "createAdminUserTopup":

			$res = createAdminUserTopup($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "updateAdminUserTopup":

			$res = updateAdminUserTopup($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "getAdminUserTopup":
			$rawData = getAdminUserTopup($soapParams);

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Type','int');
			$res->addField('Value','int');
			$res->addField('ValidFrom','date');
			$res->addField('ValidTo','date');
			$res->parseHash($rawData);

			echo json_encode($res->export());
			break;

		case "removeAdminUserTopup":

			$res = removeAdminUserTopup($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
Robert Anderson's avatar
Robert Anderson committed
		# WiSPUserTopups.js functions
		case "getWiSPUserTopups":

			$res = getWiSPUserTopups($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Timestamp','date');
			$res->addField('Type','int');
			$res->addField('Value','int');
			$res->addField('ValidFrom','string');
			$res->addField('ValidTo','string');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());

			break;
	
		case "createWiSPUserTopup":

			$res = createWiSPUserTopup($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
Robert Anderson's avatar
Robert Anderson committed
			}

			break;

		case "updateWiSPUserTopup":

			$res = updateWiSPUserTopup($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
Robert Anderson's avatar
Robert Anderson committed
			}

			break;

		case "getWiSPUserTopup":
			$rawData = getWiSPUserTopup($soapParams);

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Type','int');
			$res->addField('Value','int');
			$res->addField('ValidFrom','date');
			$res->addField('ValidTo','date');
			$res->parseHash($rawData);

			echo json_encode($res->export());
			break;

		case "removeWiSPUserTopup":

			$res = removeWiSPUserTopup($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
		# AdminGroupMembers.js functions
		case "getAdminGroupMembers":

			$res = getAdminGroupMembers($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
Robert Anderson's avatar
Robert Anderson committed
			$res->addField('Username','string');
			$res->addField('Disabled','boolean');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());

			break;

		case "removeAdminGroupMember":

			$res = removeAdminGroupMember($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
		# AdminRealmMembers.js functions
		case "getAdminRealmMembers":

			$res = getAdminRealmMembers($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());

			break;

		case "removeAdminRealmMember":

			$res = removeAdminRealmMember($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
		# AdminUserLogs.js functions
		case "getAdminUserLogs":

			$res = getAdminUserLogs($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('EventTimestamp','string');
			$res->addField('AcctStatusType','int');
			$res->addField('ServiceType','int');
			$res->addField('FramedProtocol','int');
			$res->addField('NASPortType','int');
			$res->addField('NASPortID','string');
			$res->addField('CallingStationID','string');
			$res->addField('CalledStationID','string');
			$res->addField('AcctSessionID','string');
			$res->addField('FramedIPAddress','string');
			$res->addField('AcctInputMbyte','int');
			$res->addField('AcctOutputMbyte','int');
Robert Anderson's avatar
Robert Anderson committed
			$res->addField('AcctSessionTime','int');
			$res->addField('ConnectTermReason','string');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());

			break;
	
Robert Anderson's avatar
Robert Anderson committed
		# addAdminUserGroup.js functions
		case "addAdminUserGroup":

			$res = addAdminUserGroup($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
Robert Anderson's avatar
Robert Anderson committed
		case "removeAdminUserGroup":

			$res = removeAdminUserGroup($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
		case "getAdminUserGroups":

			$res = getAdminUserGroups($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());
		# AdminRealmAttributes.js functions
		case "addAdminRealmAttribute":

			$res = addAdminRealmAttribute($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "updateAdminRealmAttribute":

			$res = updateAdminRealmAttribute($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "getAdminRealmAttribute":
			$rawData = getAdminRealmAttribute($soapParams);

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->addField('Operator','string');
			$res->addField('Value','string');
			$res->addField('Disabled','boolean');
			$res->parseHash($rawData);

			echo json_encode($res->export());
			break;

		case "getAdminRealmAttributes":

			$res = getAdminRealmAttributes($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->addField('Operator','string');
			$res->addField('Value','string');
			$res->addField('Disabled','boolean');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());
			break;

		case "removeAdminRealmAttribute":

			$res = removeAdminRealmAttribute($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
		# AdminGroupAttributes.js functions
		case "addAdminGroupAttribute":

			$res = addAdminGroupAttribute($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "updateAdminGroupAttribute":

			$res = updateAdminGroupAttribute($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "getAdminGroupAttribute":
			$rawData = getAdminGroupAttribute($soapParams);

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->addField('Operator','string');
			$res->addField('Value','string');
			$res->addField('Disabled','boolean');
			$res->parseHash($rawData);

			echo json_encode($res->export());
			break;

		case "getAdminGroupAttributes":

			$res = getAdminGroupAttributes($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->addField('Operator','string');
			$res->addField('Value','string');
			$res->addField('Disabled','boolean');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());
			break;

		case "removeAdminGroupAttribute":

			$res = removeAdminGroupAttribute($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
		# AdminUserAttributes.js functions
		case "addAdminUserAttribute":

			$res = addAdminUserAttribute($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
		case "updateAdminUserAttribute":

			$res = updateAdminUserAttribute($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "getAdminUserAttribute":
			$rawData = getAdminUserAttribute($soapParams);

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->addField('Operator','string');
			$res->addField('Value','string');
			$res->addField('Disabled','boolean');
			$res->parseHash($rawData);

			echo json_encode($res->export());
			break;

		case "getAdminUserAttributes":

			$res = getAdminUserAttributes($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->addField('Operator','string');
			$res->addField('Value','string');
			$res->addField('Disabled','boolean');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());
			break;

Robert Anderson's avatar
Robert Anderson committed
		case "removeAdminUserAttribute":

			$res = removeAdminUserAttribute($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
		# WiSPUsers.js functions
		case "updateWiSPUser":

			$res = updateWiSPUser($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "createWiSPUser":

			$res = createWiSPUser($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "removeWiSPUser":

			$res = removeWiSPUser($soapParams);
			if (isset($res)) {
				ajaxException($res);
Robert Anderson's avatar
Robert Anderson committed
			} else {
				jsonSuccess();
			}

			break;

		case "getWiSPUsers":

			$res = getWiSPUsers($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Username','string');
			$res->addField('Disabled','boolean');
			$res->addField('Firstname','string');
			$res->addField('Lastname','string');
			$res->addField('Email','string');
			$res->addField('Phone','int');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());
			break;

		case "getWiSPUser":
			$res = getWiSPUser($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Username','string');
			$res->addField('Password','string');
			$res->addField('Firstname','string');
			$res->addField('Lastname','string');
			$res->addField('Phone','string');
			$res->addField('Email','string');
			$res->addField('LocationID','int');
			$res->parseHash($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());
			break;

Robert Anderson's avatar
Robert Anderson committed
		case "getWiSPUserAttributes":
			$res = getWiSPUserAttributes($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->addField('Operator','string');
			$res->addField('Value','string');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());
			break;

		case "getWiSPUserGroups":
			$res = getWiSPUserGroups($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('Name','string');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());
			break;

Robert Anderson's avatar
Robert Anderson committed
		# WiSPUserLogs.js functions
		case "getWiSPUserLogs":

			$res = getWiSPUserLogs($soapParams);
			$rawData = $res[0]; $numResults = $res[1];

			$res = new json_response;
			$res->setID('ID');
			$res->addField('ID','int');
			$res->addField('EventTimestamp','string');
			$res->addField('AcctStatusType','int');
			$res->addField('ServiceType','int');
			$res->addField('FramedProtocol','int');
			$res->addField('NASPortType','int');
			$res->addField('NASPortID','string');
			$res->addField('CallingStationID','string');
			$res->addField('CalledStationID','string');
			$res->addField('AcctSessionID','string');
			$res->addField('FramedIPAddress','string');
			$res->addField('AcctInputMbyte','int');
			$res->addField('AcctOutputMbyte','int');
			$res->addField('ConnectTermReason','string');
			$res->parseArray($rawData);
			$res->setDatasetSize($numResults);

			echo json_encode($res->export());

			break;