From 52e001822d6041df649abe0bf74d0d7c1887019a Mon Sep 17 00:00:00 2001
From: Robert Anderson <randerson@lbsd.net>
Date: Thu, 6 Aug 2009 07:08:04 +0000
Subject: [PATCH] Fixed up error handling

---
 webgui/ajax.php                               | 89 ++++++++++++++++++-
 .../ajax/functions/AdminClientAttributes.php  |  6 +-
 .../ajax/functions/AdminClientRealms.php      |  4 +-
 .../include/ajax/functions/AdminClients.php   | 13 ++-
 .../ajax/functions/AdminGroupAttributes.php   |  6 +-
 .../ajax/functions/AdminGroupMembers.php      |  2 +-
 webgui/include/ajax/functions/AdminGroups.php | 13 ++-
 .../ajax/functions/AdminRealmAttributes.php   |  6 +-
 .../ajax/functions/AdminRealmMembers.php      |  2 +-
 webgui/include/ajax/functions/AdminRealms.php | 13 ++-
 .../ajax/functions/AdminUserAttributes.php    |  8 +-
 .../ajax/functions/AdminUserGroups.php        |  4 +-
 .../ajax/functions/AdminUserTopups.php        |  6 +-
 webgui/include/ajax/functions/AdminUsers.php  | 14 ++-
 .../ajax/functions/WiSPLocationMembers.php    |  2 +-
 .../include/ajax/functions/WiSPLocations.php  | 13 ++-
 .../include/ajax/functions/WiSPUserTopups.php |  6 +-
 webgui/include/ajax/functions/WiSPUsers.php   | 26 +++---
 webgui/include/ajax/json.php                  | 32 +++++++
 19 files changed, 188 insertions(+), 77 deletions(-)

diff --git a/webgui/ajax.php b/webgui/ajax.php
index 8c52a0fa..543f190d 100644
--- a/webgui/ajax.php
+++ b/webgui/ajax.php
@@ -48,7 +48,8 @@
 		);
 		echo json_encode($res);
 */
-		echo json_encode($msg);
+//		echo json_encode($msg);
+		jsonError(-1,$msg);
 		exit;
 	}
 
@@ -176,6 +177,8 @@
 			$res = addAdminClientRealm($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -185,6 +188,8 @@
 			$res = removeAdminClientRealm($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -211,6 +216,8 @@
 			$res = updateAdminClient($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -220,6 +227,8 @@
 			$res = createAdminClient($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -229,6 +238,8 @@
 			$res = removeAdminClient($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -268,6 +279,8 @@
 			$res = addAdminClientAttribute($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -277,6 +290,8 @@
 			$res = updateAdminClientAttribute($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -319,6 +334,8 @@
 			$res = removeAdminClientAttribute($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -392,6 +409,8 @@
 			$res = createAdminUserTopup($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -401,6 +420,8 @@
 			$res = updateAdminUserTopup($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -425,6 +446,8 @@
 			$res = removeAdminUserTopup($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -455,6 +478,8 @@
 			$res = createWiSPUserTopup($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -464,6 +489,8 @@
 			$res = updateWiSPUserTopup($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -488,6 +515,8 @@
 			$res = removeWiSPUserTopup($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -515,6 +544,8 @@
 			$res = removeAdminGroupMember($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -541,6 +572,8 @@
 			$res = removeAdminRealmMember($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -581,6 +614,8 @@
 			$res = addAdminUserGroup($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -590,6 +625,8 @@
 			$res = removeAdminUserGroup($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -616,6 +653,8 @@
 			$res = addAdminRealmAttribute($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -625,6 +664,8 @@
 			$res = updateAdminRealmAttribute($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -667,6 +708,8 @@
 			$res = removeAdminRealmAttribute($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -677,6 +720,8 @@
 			$res = addAdminGroupAttribute($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -686,6 +731,8 @@
 			$res = updateAdminGroupAttribute($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -728,6 +775,8 @@
 			$res = removeAdminGroupAttribute($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -738,6 +787,8 @@
 			$res = addAdminUserAttribute($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -747,6 +798,8 @@
 			$res = updateAdminUserAttribute($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -789,6 +842,8 @@
 			$res = removeAdminUserAttribute($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -799,6 +854,8 @@
 			$res = updateWiSPUser($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -808,6 +865,8 @@
 			$res = createWiSPUser($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -817,6 +876,8 @@
 			$res = removeWiSPUser($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -942,6 +1003,8 @@
 			$res = removeWiSPLocationMember($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -952,6 +1015,8 @@
 			$res = updateWiSPLocation($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -961,6 +1026,8 @@
 			$res = createWiSPLocation($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -970,6 +1037,8 @@
 			$res = removeWiSPLocation($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -1007,6 +1076,8 @@
 			$res = updateAdminUser($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -1016,6 +1087,8 @@
 			$res = createAdminUser($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -1025,6 +1098,8 @@
 			$res = removeAdminUser($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -1064,6 +1139,8 @@
 			$res = updateAdminRealm($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -1073,6 +1150,8 @@
 			$res = createAdminRealm($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -1082,6 +1161,8 @@
 			$res = removeAdminRealm($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -1121,6 +1202,8 @@
 			$res = updateAdminGroup($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -1130,6 +1213,8 @@
 			$res = createAdminGroup($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
@@ -1139,6 +1224,8 @@
 			$res = removeAdminGroup($soapParams);
 			if (isset($res)) {
 				ajaxException($res);
+			} else {
+				jsonSuccess();
 			}
 
 			break;
diff --git a/webgui/include/ajax/functions/AdminClientAttributes.php b/webgui/include/ajax/functions/AdminClientAttributes.php
index 5102e7a4..0940f88e 100644
--- a/webgui/include/ajax/functions/AdminClientAttributes.php
+++ b/webgui/include/ajax/functions/AdminClientAttributes.php
@@ -19,7 +19,7 @@ function addAdminClientAttribute($params) {
 	);
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -33,7 +33,7 @@ function removeAdminClientAttribute($params) {
 	$res = DBDo("DELETE FROM client_attributes WHERE ID = ?",array($params[0]));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -53,7 +53,7 @@ function updateAdminClientAttribute($params) {
 	);
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminClientRealms.php b/webgui/include/ajax/functions/AdminClientRealms.php
index 75246de1..d794dd97 100644
--- a/webgui/include/ajax/functions/AdminClientRealms.php
+++ b/webgui/include/ajax/functions/AdminClientRealms.php
@@ -10,7 +10,7 @@ function addAdminClientRealm($params) {
 	$res = DBDo("INSERT INTO clients_to_realms (ClientID,RealmID) VALUES (?,?)",array($params[0]['ClientID'],$params[0]['RealmID']));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -24,7 +24,7 @@ function removeAdminClientRealm($params) {
 	$res = DBDo("DELETE FROM clients_to_realms WHERE ID = ?",array($params[0]));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminClients.php b/webgui/include/ajax/functions/AdminClients.php
index ce22b9aa..9a611b53 100644
--- a/webgui/include/ajax/functions/AdminClients.php
+++ b/webgui/include/ajax/functions/AdminClients.php
@@ -81,13 +81,12 @@ function removeAdminClient($params) {
 		$res = DBDo("DELETE FROM clients WHERE ID = ?",array($params[0]));
 	}
 
-	# Commit and return if successful
-	if (is_bool($res)) {
-		DBCommit();
+	# Return result
+	if ($res !== TRUE) {
+		DBRollback();
 		return $res;
-	# Else rollback database
 	} else {
-		DBRollback();
+		DBCommit();
 	}
 
 	return NULL;
@@ -100,7 +99,7 @@ function createAdminClient($params) {
 	$res = DBDo("INSERT INTO clients (Name,AccessList) VALUES (?,?)",array($params[0]['Name'],$params[0]['AccessList']));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -115,7 +114,7 @@ function updateAdminClient($params) {
 			array($params[0]['Name'],$params[0]['AccessList'],$params[0]['ID']));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminGroupAttributes.php b/webgui/include/ajax/functions/AdminGroupAttributes.php
index 0a6d710b..023e1a20 100644
--- a/webgui/include/ajax/functions/AdminGroupAttributes.php
+++ b/webgui/include/ajax/functions/AdminGroupAttributes.php
@@ -18,7 +18,7 @@ function addAdminGroupAttribute($params) {
 	);
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -31,7 +31,7 @@ function removeAdminGroupAttribute($params) {
 	$res = DBDo("DELETE FROM group_attributes WHERE ID = ?",array($params[0]));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -50,7 +50,7 @@ function updateAdminGroupAttribute($params) {
 	);
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminGroupMembers.php b/webgui/include/ajax/functions/AdminGroupMembers.php
index 18809a82..15a55ad4 100644
--- a/webgui/include/ajax/functions/AdminGroupMembers.php
+++ b/webgui/include/ajax/functions/AdminGroupMembers.php
@@ -8,7 +8,7 @@ function removeAdminGroupMember($params) {
 	$res = DBDo("DELETE FROM users_to_groups WHERE ID = ?",array($params[0]));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminGroups.php b/webgui/include/ajax/functions/AdminGroups.php
index ce66856f..605af126 100644
--- a/webgui/include/ajax/functions/AdminGroups.php
+++ b/webgui/include/ajax/functions/AdminGroups.php
@@ -87,13 +87,12 @@ function removeAdminGroup($params) {
 		$res = DBDo("DELETE FROM groups WHERE ID = ?",array($params[0]));
 	}
 
-	# Commit and return if successful
-	if (is_bool($res)) {
-		DBCommit();
+	# Return result
+	if ($res !== TRUE) {
+		DBRollback();
 		return $res;
-	# Else rollback database
 	} else {
-		DBRollback();
+		DBCommit();
 	}
 
 	return NULL;
@@ -106,7 +105,7 @@ function createAdminGroup($params) {
 	$res = DBDo("INSERT INTO groups (Name) VALUES (?)",array($params[0]['Name']));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -120,7 +119,7 @@ function updateAdminGroup($params) {
 	$res = DBDo("UPDATE groups SET Name = ? WHERE ID = ?",array($params[0]['Name'],$params[0]['ID']));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminRealmAttributes.php b/webgui/include/ajax/functions/AdminRealmAttributes.php
index 74669a56..c71e0c55 100644
--- a/webgui/include/ajax/functions/AdminRealmAttributes.php
+++ b/webgui/include/ajax/functions/AdminRealmAttributes.php
@@ -19,7 +19,7 @@ function addAdminRealmAttribute($params) {
 	);
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -33,7 +33,7 @@ function removeAdminRealmAttribute($params) {
 	$res = DBDo("DELETE FROM realm_attributes WHERE ID = ?",array($params[0]));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -53,7 +53,7 @@ function updateAdminRealmAttribute($params) {
 	);
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminRealmMembers.php b/webgui/include/ajax/functions/AdminRealmMembers.php
index 50f73d22..c4d96770 100644
--- a/webgui/include/ajax/functions/AdminRealmMembers.php
+++ b/webgui/include/ajax/functions/AdminRealmMembers.php
@@ -8,7 +8,7 @@ function removeAdminRealmMember($params) {
 	$res = DBDo("DELETE FROM clients_to_realms WHERE ID = ?",array($params[0]));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminRealms.php b/webgui/include/ajax/functions/AdminRealms.php
index cf1182ea..e035bfc0 100644
--- a/webgui/include/ajax/functions/AdminRealms.php
+++ b/webgui/include/ajax/functions/AdminRealms.php
@@ -76,13 +76,12 @@ function removeAdminRealm($params) {
 		$res = DBDo("DELETE FROM realms WHERE ID = ?",array($params[0]));
 	}
 
-	# Commit and return if successful
-	if (is_bool($res)) {
-		DBCommit();
+	# Return result
+	if ($res !== TRUE) {
+		DBRollback();
 		return $res;
-	# Else rollback database
 	} else {
-		DBRollback();
+		DBCommit();
 	}
 
 	return NULL;
@@ -95,7 +94,7 @@ function createAdminRealm($params) {
 	$res = DBDo("INSERT INTO realms (Name) VALUES (?)",array($params[0]['Name']));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -109,7 +108,7 @@ function updateAdminRealm($params) {
 	$res = DBDo("UPDATE realms SET Name = ? WHERE ID = ?",array($params[0]['Name'],$params[0]['ID']));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminUserAttributes.php b/webgui/include/ajax/functions/AdminUserAttributes.php
index cb6e041f..e8e75adb 100644
--- a/webgui/include/ajax/functions/AdminUserAttributes.php
+++ b/webgui/include/ajax/functions/AdminUserAttributes.php
@@ -19,7 +19,7 @@ function addAdminUserAttribute($params) {
 	);
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -33,7 +33,7 @@ function removeAdminUserAttribute($params) {
 	$res = DBDo("DELETE FROM user_attributes WHERE ID = ?",array($params[0]));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -52,8 +52,8 @@ function updateAdminUserAttribute($params) {
 				$params[0]['ID'])
 	);
 
-	# Return result
-	if (is_bool($res)) {
+	# Return error
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminUserGroups.php b/webgui/include/ajax/functions/AdminUserGroups.php
index a19c636a..ff160d72 100644
--- a/webgui/include/ajax/functions/AdminUserGroups.php
+++ b/webgui/include/ajax/functions/AdminUserGroups.php
@@ -10,7 +10,7 @@ function addAdminUserGroup($params) {
 	$res = DBDo("INSERT INTO users_to_groups (UserID,GroupID) VALUES (?,?)",array($params[0]['UserID'],$params[0]['GroupID']));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -24,7 +24,7 @@ function removeAdminUserGroup($params) {
 	$res = DBDo("DELETE FROM users_to_groups WHERE ID = ?",array($params[0]));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminUserTopups.php b/webgui/include/ajax/functions/AdminUserTopups.php
index 479d82d8..aff050c6 100644
--- a/webgui/include/ajax/functions/AdminUserTopups.php
+++ b/webgui/include/ajax/functions/AdminUserTopups.php
@@ -16,7 +16,7 @@ function createAdminUserTopup($params) {
 	);
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -36,7 +36,7 @@ function updateAdminUserTopup($params) {
 	);
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -50,7 +50,7 @@ function removeAdminUserTopup($params) {
 	$res = DBDo("DELETE FROM topups WHERE ID = ?",array($params[0]));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminUsers.php b/webgui/include/ajax/functions/AdminUsers.php
index 8b273c3b..7b79ba94 100644
--- a/webgui/include/ajax/functions/AdminUsers.php
+++ b/webgui/include/ajax/functions/AdminUsers.php
@@ -132,15 +132,13 @@ function removeAdminUser($params) {
 		$res = DBDo("DELETE FROM users WHERE ID = ?",array($params[0]));
 	}
 
-	# Commit and return if successful
-	if (is_bool($res)) {
-		DBCommit();
+	# Return result
+	if ($res !== TRUE) {
+		DBRollback();
 		return $res;
-	# Else rollback database
 	} else {
-		DBRollback();
+		DBCommit();
 	}
-
 	return NULL;
 }
 
@@ -151,7 +149,7 @@ function createAdminUser($params) {
 	$res = DBDo("INSERT INTO users (Username) VALUES (?)",array($params[0]['Username']));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -165,7 +163,7 @@ function updateAdminUser($params) {
 	$res = DBDo("UPDATE users SET Username = ? WHERE ID = ?",array($params[0]['Username'],$params[0]['ID']));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/WiSPLocationMembers.php b/webgui/include/ajax/functions/WiSPLocationMembers.php
index 78ec530a..03ea250a 100644
--- a/webgui/include/ajax/functions/WiSPLocationMembers.php
+++ b/webgui/include/ajax/functions/WiSPLocationMembers.php
@@ -9,7 +9,7 @@ function removeWiSPLocationMember($params) {
 	$res = DBDo("UPDATE wisp_userdata SET LocationID = NULL WHERE UserID = ?",array($params[0]));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/WiSPLocations.php b/webgui/include/ajax/functions/WiSPLocations.php
index 6b9a29a5..7fb9d484 100644
--- a/webgui/include/ajax/functions/WiSPLocations.php
+++ b/webgui/include/ajax/functions/WiSPLocations.php
@@ -75,13 +75,12 @@ function removeWiSPLocation($params) {
 		$res = DBDo("DELETE FROM wisp_locations WHERE ID = ?",array($params[0]));
 	}
 
-	# Commit changes if successful
-	if (is_bool($res)) {
-		DBCommit();
+	# Return result
+	if ($res !== TRUE) {
+		DBRollback();
 		return $res;
-	# Rollback database if error
 	} else {
-		DBRollback();
+		DBCommit();
 	}
 
 	return NULL;
@@ -94,7 +93,7 @@ function createWiSPLocation($params) {
 	$res = DBDo("INSERT INTO wisp_locations (Name) VALUES (?)",array($params[0]['Name']));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -108,7 +107,7 @@ function updateWiSPLocation($params) {
 	$res = DBDo("UPDATE wisp_locations SET Name = ? WHERE ID = ?",array($params[0]['Name'],$params[0]['ID']));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/WiSPUserTopups.php b/webgui/include/ajax/functions/WiSPUserTopups.php
index ea00906d..39013f93 100644
--- a/webgui/include/ajax/functions/WiSPUserTopups.php
+++ b/webgui/include/ajax/functions/WiSPUserTopups.php
@@ -16,7 +16,7 @@ function createWiSPUserTopup($params) {
 	);
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -36,7 +36,7 @@ function updateWiSPUserTopup($params) {
 	);
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
@@ -50,7 +50,7 @@ function removeWiSPUserTopup($params) {
 	$res = DBDo("DELETE FROM topups WHERE ID = ?",array($params[0]));
 
 	# Return result
-	if (is_bool($res)) {
+	if ($res !== TRUE) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/WiSPUsers.php b/webgui/include/ajax/functions/WiSPUsers.php
index 0ccc7d39..07372733 100644
--- a/webgui/include/ajax/functions/WiSPUsers.php
+++ b/webgui/include/ajax/functions/WiSPUsers.php
@@ -296,13 +296,12 @@ function removeWiSPUser($params) {
 		$res = DBDo("DELETE FROM users WHERE ID = ?",array($params[0]));
 	}
 
-	# Commit and return if successful
-	if (is_bool($res)) {
-		DBCommit();
+	# Return result
+	if ($res !== TRUE) {
+		DBRollback();
 		return $res;
-	# Else rollback database
 	} else {
-		DBRollback();
+		DBCommit();
 	}
 
 	return NULL;
@@ -316,9 +315,9 @@ function createWiSPUser($params) {
 	# Begin transaction
 	DBBegin();
 	# Perform first query
-	$res = "Username & Password required for single user. For adding multiple users an integer is required.";
+	$res = "Username required for single user. For adding multiple users an integer is required.";
 	# If we adding single user
-	if (empty($params[0]['Number']) && !empty($params[0]['Password']) && !empty($params[0]['Username'])) {
+	if (empty($params[0]['Number']) && !empty($params[0]['Username'])) {
 		# Insert username
 		$res = DBDo("INSERT INTO users (Username) VALUES (?)",array($params[0]['Username']));
 
@@ -607,12 +606,11 @@ function createWiSPUser($params) {
 	}
 
 	# Commit changes if all was successful, else rollback
-	if (is_bool($res)) {
-		DBCommit();
-		return $res;
-	} else {
+	if ($res !== TRUE) {
 		DBRollback();
 		return $res;
+	} else {
+		DBCommit();
 	}
 
 	return NULL;
@@ -792,11 +790,11 @@ function updateWiSPUser($params) {
 	}
 
 	# Commit changes if all was successful, else break
-	if (is_bool($res) && $res === TRUE) {
-		DBCommit();
+	if ($res !== TRUE) {
+		DBRollback();
 		return $res;
 	} else {
-		DBRollback();
+		DBCommit();
 	}
 
 	return NULL;
diff --git a/webgui/include/ajax/json.php b/webgui/include/ajax/json.php
index 6b9fbf21..6bab0974 100644
--- a/webgui/include/ajax/json.php
+++ b/webgui/include/ajax/json.php
@@ -153,5 +153,37 @@ class json_response {
 	}
 }
 
+function jsonSuccess($name = 'Result',$type = 'int',$value = 0) {
+
+	# Build response
+	$res = new json_response;
+
+	$res->addField($name,$type);
+	$res->parseHash(array(
+		$name => $value
+	));
+
+	# Export
+	echo json_encode($res->export());
+}
+
+function jsonError($code,$reason) {
+    
+    # Build response
+	$res = new json_response;
+
+    $res->setStatus(-1);
+    $res->addField('ErrorCode','int');
+    $res->addField('ErrorReason','string');
+    $res->parseHash(array(
+		'ErrorCode' => $code,
+		'ErrorReason' => $reason
+	));
+    
+	# Export
+	echo json_encode($res->export());
+} 
+
+
 
 # vim: ts=4
-- 
GitLab