From 502973b9527f0fe7a4f9049bb2e6a70126b9a3a9 Mon Sep 17 00:00:00 2001
From: Robert Anderson <randerson@lbsd.net>
Date: Thu, 16 Jul 2009 14:34:07 +0000
Subject: [PATCH] Better error handling when using DBDo

---
 .../include/ajax/functions/AdminGroupAttributes.php  | 10 +++++++---
 webgui/include/ajax/functions/AdminGroupMembers.php  |  4 +++-
 webgui/include/ajax/functions/AdminGroups.php        | 10 +++++-----
 .../include/ajax/functions/AdminRealmAttributes.php  | 12 ++++++------
 webgui/include/ajax/functions/AdminRealms.php        |  6 +++---
 .../include/ajax/functions/AdminUserAttributes.php   |  6 +++---
 webgui/include/ajax/functions/AdminUserGroups.php    |  4 ++--
 webgui/include/ajax/functions/AdminUserTopups.php    |  6 +++---
 webgui/include/ajax/functions/AdminUsers.php         |  9 +++++----
 .../include/ajax/functions/WiSPLocationMembers.php   |  2 +-
 webgui/include/ajax/functions/WiSPLocations.php      |  6 +++---
 webgui/include/ajax/functions/WiSPUserTopups.php     |  6 +++---
 webgui/include/ajax/functions/WiSPUsers.php          |  6 +++---
 13 files changed, 47 insertions(+), 40 deletions(-)

diff --git a/webgui/include/ajax/functions/AdminGroupAttributes.php b/webgui/include/ajax/functions/AdminGroupAttributes.php
index ca2b05df..0a6d710b 100644
--- a/webgui/include/ajax/functions/AdminGroupAttributes.php
+++ b/webgui/include/ajax/functions/AdminGroupAttributes.php
@@ -17,7 +17,8 @@ function addAdminGroupAttribute($params) {
 						$params[0]['Disabled'])
 	);
 
-	if (!is_numeric($res)) {
+	# Return result
+	if (is_bool($res)) {
 		return $res;
 	}
 
@@ -28,7 +29,9 @@ function addAdminGroupAttribute($params) {
 function removeAdminGroupAttribute($params) {
 
 	$res = DBDo("DELETE FROM group_attributes WHERE ID = ?",array($params[0]));
-	if (!is_numeric($res)) {
+
+	# Return result
+	if (is_bool($res)) {
 		return $res;
 	}
 
@@ -46,7 +49,8 @@ function updateAdminGroupAttribute($params) {
 				$params[0]['ID'])
 	);
 
-	if (!is_numeric($res)) {
+	# Return result
+	if (is_bool($res)) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminGroupMembers.php b/webgui/include/ajax/functions/AdminGroupMembers.php
index f848c126..18809a82 100644
--- a/webgui/include/ajax/functions/AdminGroupMembers.php
+++ b/webgui/include/ajax/functions/AdminGroupMembers.php
@@ -6,7 +6,9 @@ include_once("include/db.php");
 function removeAdminGroupMember($params) {
 
 	$res = DBDo("DELETE FROM users_to_groups WHERE ID = ?",array($params[0]));
-	if (!is_numeric($res)) {
+
+	# Return result
+	if (is_bool($res)) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminGroups.php b/webgui/include/ajax/functions/AdminGroups.php
index c7711d2c..ce66856f 100644
--- a/webgui/include/ajax/functions/AdminGroups.php
+++ b/webgui/include/ajax/functions/AdminGroups.php
@@ -88,7 +88,7 @@ function removeAdminGroup($params) {
 	}
 
 	# Commit and return if successful
-	if ($res !== FALSE) {
+	if (is_bool($res)) {
 		DBCommit();
 		return $res;
 	# Else rollback database
@@ -105,8 +105,8 @@ function createAdminGroup($params) {
 	# Perform query
 	$res = DBDo("INSERT INTO groups (Name) VALUES (?)",array($params[0]['Name']));
 
-	# Return error if failed
-	if (!is_numeric($res)) {
+	# Return result
+	if (is_bool($res)) {
 		return $res;
 	}
 
@@ -119,8 +119,8 @@ function updateAdminGroup($params) {
 	# Perform query
 	$res = DBDo("UPDATE groups SET Name = ? WHERE ID = ?",array($params[0]['Name'],$params[0]['ID']));
 
-	# Return error if failed
-	if (!is_numeric($res)) {
+	# Return result
+	if (is_bool($res)) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminRealmAttributes.php b/webgui/include/ajax/functions/AdminRealmAttributes.php
index bd97b2cc..74669a56 100644
--- a/webgui/include/ajax/functions/AdminRealmAttributes.php
+++ b/webgui/include/ajax/functions/AdminRealmAttributes.php
@@ -18,8 +18,8 @@ function addAdminRealmAttribute($params) {
 						$params[0]['Disabled'])
 	);
 
-	# Return error if failed
-	if (!is_numeric($res)) {
+	# Return result
+	if (is_bool($res)) {
 		return $res;
 	}
 
@@ -32,8 +32,8 @@ function removeAdminRealmAttribute($params) {
 	# Perform query
 	$res = DBDo("DELETE FROM realm_attributes WHERE ID = ?",array($params[0]));
 
-	# Return error if failed
-	if (!is_numeric($res)) {
+	# Return result
+	if (is_bool($res)) {
 		return $res;
 	}
 
@@ -52,8 +52,8 @@ function updateAdminRealmAttribute($params) {
 				$params[0]['ID'])
 	);
 
-	# Return error if failed
-	if (!is_numeric($res)) {
+	# Return result
+	if (is_bool($res)) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminRealms.php b/webgui/include/ajax/functions/AdminRealms.php
index 2912c695..774b6628 100644
--- a/webgui/include/ajax/functions/AdminRealms.php
+++ b/webgui/include/ajax/functions/AdminRealms.php
@@ -77,7 +77,7 @@ function removeAdminRealm($params) {
 	}
 
 	# Commit and return if successful
-	if ($res !== FALSE) {
+	if (is_bool($res)) {
 		DBCommit();
 		return $res;
 	# Else rollback database
@@ -95,7 +95,7 @@ function createAdminRealm($params) {
 	$res = DBDo("INSERT INTO realms (Name) VALUES (?)",array($params[0]['Name']));
 
 	# Return result
-	if (!is_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
@@ -109,7 +109,7 @@ function updateAdminRealm($params) {
 	$res = DBDo("UPDATE realms SET Name = ? WHERE ID = ?",array($params[0]['Name'],$params[0]['ID']));
 
 	# Return result
-	if (!is_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminUserAttributes.php b/webgui/include/ajax/functions/AdminUserAttributes.php
index 47d18349..cb6e041f 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_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
@@ -33,7 +33,7 @@ function removeAdminUserAttribute($params) {
 	$res = DBDo("DELETE FROM user_attributes WHERE ID = ?",array($params[0]));
 
 	# Return result
-	if (!is_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
@@ -53,7 +53,7 @@ function updateAdminUserAttribute($params) {
 	);
 
 	# Return result
-	if (!is_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminUserGroups.php b/webgui/include/ajax/functions/AdminUserGroups.php
index 3a9a3499..a19c636a 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_numeric($res)) {
+	if (is_bool($res)) {
 		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_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminUserTopups.php b/webgui/include/ajax/functions/AdminUserTopups.php
index a22ea0b4..479d82d8 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_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
@@ -36,7 +36,7 @@ function updateAdminUserTopup($params) {
 	);
 
 	# Return result
-	if (!is_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
@@ -50,7 +50,7 @@ function removeAdminUserTopup($params) {
 	$res = DBDo("DELETE FROM topups WHERE ID = ?",array($params[0]));
 
 	# Return result
-	if (!is_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/AdminUsers.php b/webgui/include/ajax/functions/AdminUsers.php
index 97563bf7..8b273c3b 100644
--- a/webgui/include/ajax/functions/AdminUsers.php
+++ b/webgui/include/ajax/functions/AdminUsers.php
@@ -103,9 +103,10 @@ function removeAdminUser($params) {
 			while ($row = $res->fetchObject()) {
 				array_push($topupList,$row->topupid);
 			}
+			$res = TRUE;
 		}
 
-		if ($res !== FALSE && sizeof($topupList) > 0) {
+		if (sizeof($topupList) > 0 && $res !== FALSE) {
 			# Remove topup summaries
 			foreach ($topupList as $id) {
 				if ($res !== FALSE) {
@@ -132,7 +133,7 @@ function removeAdminUser($params) {
 	}
 
 	# Commit and return if successful
-	if ($res !== FALSE) {
+	if (is_bool($res)) {
 		DBCommit();
 		return $res;
 	# Else rollback database
@@ -150,7 +151,7 @@ function createAdminUser($params) {
 	$res = DBDo("INSERT INTO users (Username) VALUES (?)",array($params[0]['Username']));
 
 	# Return result
-	if (!is_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
@@ -164,7 +165,7 @@ function updateAdminUser($params) {
 	$res = DBDo("UPDATE users SET Username = ? WHERE ID = ?",array($params[0]['Username'],$params[0]['ID']));
 
 	# Return result
-	if (!is_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/WiSPLocationMembers.php b/webgui/include/ajax/functions/WiSPLocationMembers.php
index b9f69d1f..78ec530a 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_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/WiSPLocations.php b/webgui/include/ajax/functions/WiSPLocations.php
index 07f5110e..6b9a29a5 100644
--- a/webgui/include/ajax/functions/WiSPLocations.php
+++ b/webgui/include/ajax/functions/WiSPLocations.php
@@ -76,7 +76,7 @@ function removeWiSPLocation($params) {
 	}
 
 	# Commit changes if successful
-	if ($res !== FALSE) {
+	if (is_bool($res)) {
 		DBCommit();
 		return $res;
 	# Rollback database if error
@@ -94,7 +94,7 @@ function createWiSPLocation($params) {
 	$res = DBDo("INSERT INTO wisp_locations (Name) VALUES (?)",array($params[0]['Name']));
 
 	# Return result
-	if (!is_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
@@ -108,7 +108,7 @@ function updateWiSPLocation($params) {
 	$res = DBDo("UPDATE wisp_locations SET Name = ? WHERE ID = ?",array($params[0]['Name'],$params[0]['ID']));
 
 	# Return result
-	if (!is_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/WiSPUserTopups.php b/webgui/include/ajax/functions/WiSPUserTopups.php
index 16dbb625..ea00906d 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_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
@@ -36,7 +36,7 @@ function updateWiSPUserTopup($params) {
 	);
 
 	# Return result
-	if (!is_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
@@ -50,7 +50,7 @@ function removeWiSPUserTopup($params) {
 	$res = DBDo("DELETE FROM topups WHERE ID = ?",array($params[0]));
 
 	# Return result
-	if (!is_numeric($res)) {
+	if (is_bool($res)) {
 		return $res;
 	}
 
diff --git a/webgui/include/ajax/functions/WiSPUsers.php b/webgui/include/ajax/functions/WiSPUsers.php
index 91c42ca8..0276c393 100644
--- a/webgui/include/ajax/functions/WiSPUsers.php
+++ b/webgui/include/ajax/functions/WiSPUsers.php
@@ -230,7 +230,7 @@ function removeWiSPUser($params) {
 	}
 
 	# Commit and return if successful
-	if ($res !== FALSE) {
+	if (is_bool($res)) {
 		DBCommit();
 		return $res;
 	# Else rollback database
@@ -535,7 +535,7 @@ function createWiSPUser($params) {
 	}
 
 	# Commit changes if all was successful, else rollback
-	if ($res !== FALSE) {
+	if (is_bool($res)) {
 		DBCommit();
 		return $res;
 	} else {
@@ -582,7 +582,7 @@ function updateWiSPUser($params) {
 	}
 
 	# Commit changes if all was successful, else break
-	if ($res !== FALSE) {
+	if (is_bool($res)) {
 		DBCommit();
 		return $res;
 	} else {
-- 
GitLab