From 581544989da7e462ff43780dae67b63f845c3d95 Mon Sep 17 00:00:00 2001 From: mukhtar Date: Mon, 24 Feb 2003 11:08:58 +0000 Subject: [PATCH] added error checking for deletion --- lib/roles/Role.inc | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/roles/Role.inc b/lib/roles/Role.inc index e0055a3..cb71355 100644 --- a/lib/roles/Role.inc +++ b/lib/roles/Role.inc @@ -131,14 +131,27 @@ class Role { global $default, $lang_err_database, $lang_err_object_key; //only delete the object if it exists in the database if ($this->iId >= 0) { + //check to see if role is linked to a folder $sql = $default->db; - $result = $sql->query("DELETE FROM $default->owl_roles_table WHERE id = $this->iId"); - if ($result) { + $query = "SELECT role_id FROM ". $default->owl_groups_folders_approval_table ." WHERE role_id = '" . $this->iId . "'"; + $sql->query($query); + $rows = $sql->num_rows($sql); + + if ($rows > 0){ + // duplicate link exists + $_SESSION["errorMessage"] = "Role::The Role " . $this->sName . " is Assigned to a folder!"; + return false; + + }else{ + $sql = $default->db; + $result = $sql->query("DELETE FROM $default->owl_roles_table WHERE id = $this->iId"); + if ($result) { return true; } $_SESSION["errorMessage"] = $lang_err_database; return false; } + } $_SESSION["errorMessage"] = $lang_err_object_key; return false; } -- libgit2 0.21.4