浏览代码

Update domain_delete.php

FusionPBX 6 年之前
父节点
当前提交
c91e79a644
共有 1 个文件被更改,包括 123 次插入117 次删除
  1. 123 117
      core/domain_settings/domain_delete.php

+ 123 - 117
core/domain_settings/domain_delete.php

@@ -17,7 +17,7 @@
 
  The Initial Developer of the Original Code is
  Mark J Crane <[email protected]>
- Portions created by the Initial Developer are Copyright (C) 2008-2016
+ Portions created by the Initial Developer are Copyright (C) 2008-2019
  the Initial Developer. All Rights Reserved.
 
  Contributor(s):
@@ -43,159 +43,165 @@
 	$text = $language->get();
 
 //get the id
-	if (count($_GET)>0) {
+	if (is_array($_GET)) {
 		$id = check_str($_GET["id"]);
 	}
 
 //delete domain data and files
-if (strlen($id) > 0) {
-	//get the domain using the id
-		$sql = "select * from v_domains ";
-		$sql .= "where domain_uuid = '$id' ";
-		$prep_statement = $db->prepare(check_sql($sql));
-		$prep_statement->execute();
-		$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
-		if (isset($result)) foreach ($result as &$row) {
-			$domain_name = $row["domain_name"];
-		}
-		unset ($prep_statement);
-
-	//get the domain settings
-		$sql = "select * from v_domain_settings ";
-		$sql .= "where domain_uuid = '".$id."' ";
-		$sql .= "and domain_setting_enabled = 'true' ";
-		$prep_statement = $db->prepare($sql);
-		$prep_statement->execute();
-		$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
-		if (isset($result)) foreach($result as $row) {
-			$name = $row['domain_setting_name'];
-			$category = $row['domain_setting_category'];
-			$subcategory = $row['domain_setting_subcategory'];
-			if (strlen($subcategory) == 0) {
-				if ($name == "array") {
-					$_SESSION[$category][] = $row['default_setting_value'];
-				}
-				else {
-					$_SESSION[$category][$name] = $row['default_setting_value'];
-				}
-			} else {
-				if ($name == "array") {
-					$_SESSION[$category][$subcategory][] = $row['default_setting_value'];
-				}
-				else {
-					$_SESSION[$category][$subcategory]['uuid'] = $row['default_setting_uuid'];
-					$_SESSION[$category][$subcategory][$name] = $row['default_setting_value'];
+	if (is_uuid($id)) {
+		//get the domain using the id
+			$sql = "select * from v_domains ";
+			$sql .= "where domain_uuid = '$id' ";
+			$prep_statement = $db->prepare(check_sql($sql));
+			$prep_statement->execute();
+			$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
+			if (isset($result)) {
+				foreach ($result as &$row) {
+					$domain_name = $row["domain_name"];
 				}
 			}
-		}
-
-	//get the $apps array from the installed apps from the core and mod directories
-		$config_list = glob($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "/*/*/app_config.php");
-		$x=0;
-		if (isset($config_list)) foreach ($config_list as &$config_path) {
-			include($config_path);
-			$x++;
-		}
-
-	//delete the domain data from all tables in the database
-		$db->beginTransaction();
-		if (isset($apps)) foreach ($apps as &$app) {
-			if (isset($app['db'])) foreach ($app['db'] as $row) {
-				if (is_array($row['table'])) {
-					$table_name = $row['table']['name'];
-				}
-				else {
-					$table_name = $row['table'];
-				}
-				if ($table_name !== "v" && isset($row['fields'])) {
-					foreach ($row['fields'] as $field) {
-						if ($field['name'] == "domain_uuid") {
-							$sql = "delete from $table_name where domain_uuid = '$id' ";
-							$db->query($sql);
-						}
+			unset ($prep_statement);
+
+		//get the domain settings
+			$sql = "select * from v_domain_settings ";
+			$sql .= "where domain_uuid = '".$id."' ";
+			$sql .= "and domain_setting_enabled = 'true' ";
+			$prep_statement = $db->prepare($sql);
+			$prep_statement->execute();
+			$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
+			if (isset($result)) foreach($result as $row) {
+				$name = $row['domain_setting_name'];
+				$category = $row['domain_setting_category'];
+				$subcategory = $row['domain_setting_subcategory'];
+				if (strlen($subcategory) == 0) {
+					if ($name == "array") {
+						$_SESSION[$category][] = $row['default_setting_value'];
+					}
+					else {
+						$_SESSION[$category][$name] = $row['default_setting_value'];
+					}
+				} else {
+					if ($name == "array") {
+						$_SESSION[$category][$subcategory][] = $row['default_setting_value'];
+					}
+					else {
+						$_SESSION[$category][$subcategory]['uuid'] = $row['default_setting_uuid'];
+						$_SESSION[$category][$subcategory][$name] = $row['default_setting_value'];
 					}
 				}
 			}
-		}
-		$db->commit();
-
-	//delete the directories
-		if (strlen($domain_name) > 0) {
-		//set the needle
-			if (count($_SESSION["domains"]) > 1) {
-				$v_needle = 'v_'.$domain_name.'_';
-			}
-			else {
-				$v_needle = 'v_';
-			}
 
-		//delete the dialplan
-			unlink($_SESSION['switch']['dialplan']['dir'].'/'.$domain_name.'.xml');
-			if (strlen($_SESSION['switch']['dialplan']['dir']) > 0) {
-				system('rm -rf '.$_SESSION['switch']['dialplan']['dir'].'/'.$domain_name);
+		//get the $apps array from the installed apps from the core and mod directories
+			$config_list = glob($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "/*/*/app_config.php");
+			$x=0;
+			if (isset($config_list)) foreach ($config_list as &$config_path) {
+				include($config_path);
+				$x++;
 			}
 
-		//delete the dialplan public
-			unlink($_SESSION['switch']['dialplan']['dir'].'/public/'.$domain_name.'.xml');
-			if (strlen($_SESSION['switch']['dialplan']['dir']) > 0) {
-				system('rm -rf '.$_SESSION['switch']['dialplan']['dir'].'/public/'.$domain_name);
+		//delete the domain data from all tables in the database
+			$db->beginTransaction();
+			if (isset($apps)) foreach ($apps as &$app) {
+				if (isset($app['db'])) foreach ($app['db'] as $row) {
+					if (is_array($row['table']['name'])) {
+						$table_name = $row['table']['name']['text'];
+						echo "<pre>";
+						print_r($table_name);
+						echo "<pre>\n";
+					}
+					else {
+						$table_name = $row['table']['name'];
+					}
+					if ($table_name !== "v" && isset($row['fields'])) {
+						foreach ($row['fields'] as $field) {
+							if ($field['name'] == "domain_uuid") {
+								$sql = "delete from $table_name where domain_uuid = '$id'; ";
+								//echo $sql."<br />\n";
+								$db->query($sql);
+							}
+						}
+					}
+				}
 			}
+			$db->commit();
+
+		//delete the directories
+			if (strlen($domain_name) > 0) {
+				//set the needle
+				if (count($_SESSION["domains"]) > 1) {
+					$v_needle = 'v_'.$domain_name.'_';
+				}
+				else {
+					$v_needle = 'v_';
+				}
+
+				//delete the dialplan
+				unlink($_SESSION['switch']['dialplan']['dir'].'/'.$domain_name.'.xml');
+				if (strlen($_SESSION['switch']['dialplan']['dir']) > 0) {
+					system('rm -rf '.$_SESSION['switch']['dialplan']['dir'].'/'.$domain_name);
+				}
+
+				//delete the dialplan public
+				unlink($_SESSION['switch']['dialplan']['dir'].'/public/'.$domain_name.'.xml');
+				if (strlen($_SESSION['switch']['dialplan']['dir']) > 0) {
+					system('rm -rf '.$_SESSION['switch']['dialplan']['dir'].'/public/'.$domain_name);
+				}
 
-		//delete the extension
+				//delete the extension
 				unlink($_SESSION['switch']['extensions']['dir'].'/'.$domain_name.'.xml');
 				if (strlen($_SESSION['switch']['extensions']['dir']) > 0) {
 					system('rm -rf '.$_SESSION['switch']['extensions']['dir'].'/'.$domain_name);
 				}
 
-			//delete fax
+				//delete fax
 				if (strlen($_SESSION['switch']['storage']['dir']) > 0) {
 					system('rm -rf '.$_SESSION['switch']['storage']['dir'].'/fax/'.$domain_name);
-					}
+				}
 
 				//delete the gateways
-					if($dh = opendir($_SESSION['switch']['sip_profiles']['dir'])) {
-						$files = Array();
-						while($file = readdir($dh)) {
-							if($file != "." && $file != ".." && $file[0] != '.') {
-								if(is_dir($dir . "/" . $file)) {
-									//this is a directory do nothing
-								} else {
-									//check if file extension is xml
-									if (strpos($file, $v_needle) !== false && substr($file,-4) == '.xml') {
-										unlink($_SESSION['switch']['sip_profiles']['dir']."/".$file);
-									}
+				if($dh = opendir($_SESSION['switch']['sip_profiles']['dir'])) {
+					$files = Array();
+					while($file = readdir($dh)) {
+						if($file != "." && $file != ".." && $file[0] != '.') {
+							if(is_dir($dir . "/" . $file)) {
+								//this is a directory do nothing
+							} else {
+								//check if file extension is xml
+								if (strpos($file, $v_needle) !== false && substr($file,-4) == '.xml') {
+									unlink($_SESSION['switch']['sip_profiles']['dir']."/".$file);
 								}
 							}
 						}
-						closedir($dh);
 					}
+					closedir($dh);
+				}
 
 				//delete the ivr menu
-					if($dh = opendir($_SESSION['switch']['conf']['dir']."/ivr_menus/")) {
-						$files = Array();
-						while($file = readdir($dh)) {
-							if($file != "." && $file != ".." && $file[0] != '.') {
-								if(is_dir($dir . "/" . $file)) {
-									//this is a directory
-								} else {
-									if (strpos($file, $v_needle) !== false && substr($file,-4) == '.xml') {
-										unlink($_SESSION['switch']['conf']['dir']."/ivr_menus/".$file);
-									}
+				if($dh = opendir($_SESSION['switch']['conf']['dir']."/ivr_menus/")) {
+					$files = Array();
+					while($file = readdir($dh)) {
+						if($file != "." && $file != ".." && $file[0] != '.') {
+							if(is_dir($dir . "/" . $file)) {
+								//this is a directory
+							} else {
+								if (strpos($file, $v_needle) !== false && substr($file,-4) == '.xml') {
+									unlink($_SESSION['switch']['conf']['dir']."/ivr_menus/".$file);
 								}
 							}
 						}
-						closedir($dh);
 					}
+					closedir($dh);
+				}
 
 				//delete the recordings
-					if (strlen($_SESSION['switch'][recordings]['dir']) > 0) {
-						system('rm -rf '.$_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/'.$domain_name);
-					}
+				if (strlen($_SESSION['switch'][recordings]['dir']) > 0) {
+					system('rm -rf '.$_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/'.$domain_name);
+				}
 
 				//delete voicemail
-					if (strlen($_SESSION['switch']['voicemail']['dir']) > 0) {
-						system('rm -rf '.$_SESSION['switch']['voicemail']['dir'].'/'.$domain_name);
-					}
+				if (strlen($_SESSION['switch']['voicemail']['dir']) > 0) {
+					system('rm -rf '.$_SESSION['switch']['voicemail']['dir'].'/'.$domain_name);
+				}
 			}
 
 		//apply settings reminder