From 2a046824027f42ff4a33cca29c89b3fe37ced07a Mon Sep 17 00:00:00 2001 From: Robert Anderson <randerson@lbsd.net> Date: Fri, 19 Jun 2009 10:11:16 +0000 Subject: [PATCH] Unlink location members before deleting location --- .../include/ajax/functions/WiSPLocations.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/webgui/include/ajax/functions/WiSPLocations.php b/webgui/include/ajax/functions/WiSPLocations.php index 1de5d06c..1d681ab9 100644 --- a/webgui/include/ajax/functions/WiSPLocations.php +++ b/webgui/include/ajax/functions/WiSPLocations.php @@ -60,9 +60,24 @@ function getWiSPLocation($params) { function removeWiSPLocation($params) { global $db; - $res = DBDo("DELETE FROM wisp_locations WHERE ID = ?",array($params[0][0])); - if (!is_numeric($res)) { + # Begin transaction + DBBegin(); + + # Unlink users from this location + $res = DBDo("UPDATE wisp_userdata SET LocationID = NULL WHERE LocationID = ?",array($params[0][0])); + + # Delete location + if ($res !== FALSE) { + $res = DBDo("DELETE FROM wisp_locations WHERE ID = ?",array($params[0][0])); + } + + # Commit changes if successful + if ($res !== FALSE) { + DBCommit(); return $res; + # Rollback database if error + } else { + DBRollback(); } return NULL; -- GitLab