diff --git a/core/domain_settings/domain_delete.php b/core/domain_settings/domain_delete.php index 4fbe9492db..ee3c8380ee 100644 --- a/core/domain_settings/domain_delete.php +++ b/core/domain_settings/domain_delete.php @@ -42,54 +42,53 @@ $language = new text; $text = $language->get(); -//get the id - if (is_array($_GET)) { - $id = check_str($_GET["id"]); - } //delete domain data and files - if (is_uuid($id)) { + if (is_uuid($_GET["id"])) { + $id = $_GET["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"]; - } - } - unset ($prep_statement); + $sql = "select domain_name from v_domains "; + $sql .= "where domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $id; + $database = new database; + $domain_name = $database->select($sql, $parameters, 'column'); + unset($sql, $parameters); //get the domain settings $sql = "select * from v_domain_settings "; - $sql .= "where domain_uuid = '".$id."' "; + $sql .= "where domain_uuid = :domain_uuid "; $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']; + $parameters['domain_uuid'] = $id; + $database = new database; + $result = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); + + if (is_array($result) && sizeof($result) != 0) { + foreach ($result as $row) { + $name = $row['domain_setting_name']; + $category = $row['domain_setting_category']; + $subcategory = $row['domain_setting_subcategory']; + if ($subcategory != '') { + if ($name == "array") { + $_SESSION[$category][] = $row['default_setting_value']; + } + else { + $_SESSION[$category][$name] = $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 ($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']; + } } } } + unset($result, $row); //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"); @@ -115,9 +114,13 @@ 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."
\n"; - $db->query($sql); + $sql = "delete from ".$table_name." where domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $id; + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->execute($sql, $parameters); + unset($sql, $parameters); } } } diff --git a/core/domain_settings/domain_edit.php b/core/domain_settings/domain_edit.php index e5012beb47..14aa2056dc 100644 --- a/core/domain_settings/domain_edit.php +++ b/core/domain_settings/domain_edit.php @@ -50,9 +50,9 @@ $action = "update"; } else { - if (isset($_REQUEST["id"])) { + if (is_uuid($_REQUEST["id"])) { $action = "update"; - $domain_uuid = check_str($_REQUEST["id"]); + $domain_uuid = $_REQUEST["id"]; } else { $action = "add"; @@ -61,16 +61,16 @@ //get http post variables and set them to php variables if (count($_POST) > 0) { - $domain_name = check_str($_POST["domain_name"]); - $domain_enabled = check_str($_POST["domain_enabled"]); - $domain_description = check_str($_POST["domain_description"]); + $domain_name = $_POST["domain_name"]; + $domain_enabled = $_POST["domain_enabled"]; + $domain_description = $_POST["domain_description"]; } if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { $msg = ''; if ($action == "update") { - $domain_uuid = check_str($_POST["domain_uuid"]); + $domain_uuid = $_POST["domain_uuid"]; } //check for all required data @@ -92,131 +92,177 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { //add or update the database if ($_POST["persistformvar"] != "true") { if ($action == "add" && permission_exists('domain_add')) { - $sql = "select count(*) as num_rows from v_domains "; - $sql .= "where domain_name = '".$domain_name."' "; - $prep_statement = $db->prepare($sql); - if ($prep_statement) { - $prep_statement->execute(); - $row = $prep_statement->fetch(PDO::FETCH_ASSOC); - if ($row['num_rows'] == 0) { - $sql = "insert into v_domains "; - $sql .= "("; - $sql .= "domain_uuid, "; - $sql .= "domain_name, "; - $sql .= "domain_enabled, "; - $sql .= "domain_description "; - $sql .= ")"; - $sql .= "values "; - $sql .= "("; - $sql .= "'".uuid()."', "; - $sql .= "'".$domain_name."', "; - $sql .= "'".$domain_enabled."', "; - $sql .= "'".$domain_description."' "; - $sql .= ")"; - $db->exec(check_sql($sql)); - unset($sql); - } + $sql = "select count(*) from v_domains "; + $sql .= "where domain_name = :domain_name "; + $parameters['domain_name'] = $domain_name; + $database = new database; + $num_rows = $database->select($sql, $parameters, 'column'); + unset($sql, $parameters); + + if ($num_rows == 0) { + $array['domains'][0]['domain_uuid'] = uuid(); + $array['domains'][0]['domain_name'] = $domain_name; + $array['domains'][0]['domain_enabled'] = $domain_enabled; + $array['domains'][0]['domain_description'] = $domain_description; + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); } + } if ($action == "update" && permission_exists('domain_edit')) { // get original domain name $sql = "select domain_name from v_domains "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { - $original_domain_name = $row["domain_name"]; - break; - } - unset($sql, $prep_statement); + $sql .= "where domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $original_domain_name = $database->select($sql, $parameters, 'column'); + unset($sql, $parameters); // update domain name, description - $sql = "update v_domains set "; - $sql .= "domain_name = '".$domain_name."', "; - $sql .= "domain_enabled = '".$domain_enabled."', "; - $sql .= "domain_description = '".$domain_description."' "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $array['domains'][0]['domain_uuid'] = $domain_uuid; + $array['domains'][0]['domain_name'] = $domain_name; + $array['domains'][0]['domain_enabled'] = $domain_enabled; + $array['domains'][0]['domain_description'] = $domain_description; + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); if ($original_domain_name != $domain_name) { // update dialplans if (file_exists($_SERVER["PROJECT_ROOT"]."/app/dialplans/app_config.php")){ $sql = "update v_dialplans "; - $sql .= "set dialplan_context = '".$domain_name."' "; - $sql .= "where dialplan_context = '".$original_domain_name."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "set dialplan_context = :dialplan_context_new "; + $sql .= "where dialplan_context = :dialplan_context_old "; + $sql .= "and domain_uuid = :domain_uuid "; + $parameters['dialplan_context_new'] = $domain_name; + $parameters['dialplan_context_old'] = $original_domain_name; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->execute($sql, $parameters); + unset($sql, $parameters); $sql = "update v_dialplans "; - $sql .= "set dialplan_xml = replace(dialplan_xml, $original_domain_name, $domain_name); "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "set dialplan_xml = replace(dialplan_xml, :dialplan_xml_old, :dialplan_xml_new); "; + $sql .= "and domain_uuid = :domain_uuid "; + $parameters['dialplan_xml_old'] = $original_domain_name; + $parameters['dialplan_xml_new'] = $domain_name; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->execute($sql, $parameters); + unset($sql, $parameters); } // update destinations if (file_exists($_SERVER["PROJECT_ROOT"]."/app/destinations/app_config.php")){ $sql = "update v_destinations "; - $sql .= "set destination_data = replace(destination_data, $original_domain_name, $domain_name); "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "set destination_data = replace(destination_data, :destination_data_old, :destination_data_new); "; + $sql .= "and domain_uuid = :domain_uuid "; + $parameters['destination_data_old'] = $original_domain_name; + $parameters['destination_data_new'] = $domain_name; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->execute($sql, $parameters); + unset($sql, $parameters); } // update extensions (accountcode, user_context, dial_domain) if (file_exists($_SERVER["PROJECT_ROOT"]."/app/extensions/app_config.php")){ $sql = "update v_extensions set "; - $sql .= "accountcode = '".$domain_name."' "; - $sql .= "where accountcode = '".$original_domain_name."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "accountcode = :account_code_new "; + $sql .= "where accountcode = :account_code_old "; + $sql .= "and domain_uuid = :domain_uuid "; + $parameters['account_code_new'] = $domain_name; + $parameters['account_code_old'] = $original_domain_name; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->execute($sql, $parameters); + unset($sql, $parameters); $sql = "update v_extensions set "; - $sql .= "user_context = '".$domain_name."' "; - $sql .= "where user_context = '".$original_domain_name."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "user_context = :user_context_new "; + $sql .= "where user_context = :user_context_old "; + $sql .= "and domain_uuid = :domain_uuid "; + $parameters['user_context_new'] = $domain_name; + $parameters['user_context_old'] = $original_domain_name; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->execute($sql, $parameters); + unset($sql, $parameters); $sql = "update v_extensions set "; - $sql .= "dial_domain = '".$domain_name."' "; - $sql .= "where dial_domain = '".$original_domain_name."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "dial_domain = :dial_domain_new "; + $sql .= "where dial_domain = :dial_domain_old "; + $sql .= "and domain_uuid = :domain_uuid "; + $parameters['dial_domain_new'] = $domain_name; + $parameters['dial_domain_old'] = $original_domain_name; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->execute($sql, $parameters); + unset($sql, $parameters); } // update cdr records (domain_name, context) if (file_exists($_SERVER["PROJECT_ROOT"]."/app/xml_cdr/app_config.php")){ $sql = "update v_xml_cdr set "; - $sql .= "domain_name = '".$domain_name."' "; - $sql .= "where domain_name = '".$original_domain_name."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "domain_name = :domain_name_new "; + $sql .= "where domain_name = :domain_name_old "; + $sql .= "and domain_uuid = :domain_uuid "; + $parameters['domain_name_new'] = $domain_name; + $parameters['domain_name_old'] = $original_domain_name; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->execute($sql, $parameters); + unset($sql, $parameters); $sql = "update v_xml_cdr set "; - $sql .= "context = '".$domain_name."' "; - $sql .= "where context = '".$original_domain_name."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "context = :context_new "; + $sql .= "where context = :context_old "; + $sql .= "and domain_uuid = :domain_uuid "; + $parameters['context_new'] = $domain_name; + $parameters['context_old'] = $original_domain_name; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->execute($sql, $parameters); + unset($sql, $parameters); } // update billing, if installed if (file_exists($_SERVER["PROJECT_ROOT"]."/app/billing/app_config.php")){ $sql = "update v_billings set "; - $sql .= "type_value = '".$domain_name."' "; - $sql .= "where type_value = '".$original_domain_name."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "type_value = :type_value_new "; + $sql .= "where type_value = :type_value_old "; + $sql .= "and domain_uuid = :domain_uuid "; + $parameters['type_value_new'] = $domain_name; + $parameters['type_value_old'] = $original_domain_name; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->execute($sql, $parameters); + unset($sql, $parameters); } // rename switch/storage/voicemail/default/[domain] (folder) @@ -270,262 +316,328 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { // update conference session recording paths if (file_exists($_SERVER["PROJECT_ROOT"]."/app/conference_centers/app_config.php")){ $sql = "select conference_session_uuid, recording from v_conference_sessions "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; - $sql .= "and recording like '%".$original_domain_name."%' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { - // get current values - $conference_session_uuid = $row["conference_session_uuid"]; - $recording = $row["recording"]; - // replace old domain name with new domain - $recording = str_replace($original_domain_name, $domain_name, $recording); - // update db record - $sql = "update v_conference_sessions set "; - $sql .= "recording = '".$recording."' "; - $sql .= "where conference_session_uuid = '".$conference_session_uuid."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "where domain_uuid = :domain_uuid "; + $sql .= "and recording like :recording "; + $parameters['domain_uuid'] = $domain_uuid; + $parameters['recording'] = '%'.$original_domain_name.'%'; + $database = new database; + $result = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); + + if (is_array($result) && sizeof($result) != 0) { + foreach ($result as $index => &$row) { + // update db record + $array['conference_sessions'][$index]['conference_session_uuid'] = $row["conference_session_uuid"]; + $array['conference_sessions'][$index]['recording'] = str_replace($original_domain_name, $domain_name, $row["recording"]); + } + if (is_array($array) && sizeof($array) != 0) { + $p = new permissions; + $p->add('conference_session_edit', 'temp'); + + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); + + $p->delete('conference_session_edit', 'temp'); + } } - unset($sql, $prep_statement, $result); + unset($result); } // update conference center greetings if (file_exists($_SERVER["PROJECT_ROOT"]."/app/conference_centers/app_config.php")){ $sql = "select conference_center_uuid, conference_center_greeting from v_conference_centers "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; - $sql .= "and conference_center_greeting like '%".$original_domain_name."%' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { - // get current values - $conference_center_uuid = $row["conference_center_uuid"]; - $conference_center_greeting = $row["conference_center_greeting"]; - // replace old domain name with new domain - $conference_center_greeting = str_replace($original_domain_name, $domain_name, $conference_center_greeting); - // update db record - $sql = "update v_conference_centers set "; - $sql .= "conference_center_greeting = '".$conference_center_greeting."' "; - $sql .= "where conference_center_uuid = '".$conference_center_uuid."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "where domain_uuid = :domain_uuid "; + $sql .= "and conference_center_greeting like :conference_center_greeting "; + $parameters['domain_uuid'] = $domain_uuid; + $parameters['conference_center_greeting'] = '%'.$original_domain_name.'%'; + $database = new database; + $result = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); + + if (is_array($result) && sizeof($result) != 0) { + foreach ($result as $index => &$row) { + // update db record + $array['conference_centers'][$index]['conference_center_uuid'] = $row["conference_center_uuid"]; + $array['conference_centers'][$index]['conference_center_greeting'] = str_replace($original_domain_name, $domain_name, $row["conference_center_greeting"]); + } + if (is_array($array) && sizeof($array) != 0) { + $p = new permissions; + $p->add('conference_center_edit', 'temp'); + + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); + + $p->delete('conference_center_edit', 'temp'); + } } - unset($sql, $prep_statement, $result); + unset($result); } // update ivr menu greetings if (file_exists($_SERVER["PROJECT_ROOT"]."/app/ivr_menu/app_config.php")){ $sql = "select ivr_menu_uuid, ivr_menu_greet_long, ivr_menu_greet_short from v_ivr_menus "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; + $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and ( "; - $sql .= "ivr_menu_greet_long like '%".$original_domain_name."%' or "; - $sql .= "ivr_menu_greet_short like '%".$original_domain_name."%' "; + $sql .= "ivr_menu_greet_long like :ivr_menu_greet_long or "; + $sql .= "ivr_menu_greet_short like :ivr_menu_greet_short "; $sql .= ") "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { - // get current values - $ivr_menu_uuid = $row["ivr_menu_uuid"]; - $ivr_menu_greet_long = $row["ivr_menu_greet_long"]; - $ivr_menu_greet_short = $row["ivr_menu_greet_short"]; - // replace old domain name with new domain - $ivr_menu_greet_long = str_replace($original_domain_name, $domain_name, $ivr_menu_greet_long); - $ivr_menu_greet_short = str_replace($original_domain_name, $domain_name, $ivr_menu_greet_short); - // update db record - $sql = "update v_ivr_menus set "; - $sql .= "ivr_menu_greet_long = '".$ivr_menu_greet_long."', "; - $sql .= "ivr_menu_greet_short = '".$ivr_menu_greet_short."' "; - $sql .= "where ivr_menu_uuid = '".$ivr_menu_uuid."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $parameters['domain_uuid'] = $domain_uuid; + $parameters['ivr_menu_greet_long'] = '%'.$original_domain_name.'%'; + $parameters['ivr_menu_greet_short'] = '%'.$original_domain_name.'%'; + $database = new database; + $result = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); + + if (is_array($result) && sizeof($result) != 0) { + foreach ($result as $index => &$row) { + // update db record + $array['ivr_menus'][$index]['ivr_menu_uuid'] = $row["ivr_menu_uuid"]; + $array['ivr_menus'][$index]['ivr_menu_greet_long'] = str_replace($original_domain_name, $domain_name, $row["ivr_menu_greet_long"]); + $array['ivr_menus'][$index]['ivr_menu_greet_short'] = str_replace($original_domain_name, $domain_name, $row["ivr_menu_greet_short"]); + } + if (is_array($array) && sizeof($array) != 0) { + $p = new permissions; + $p->add('ivr_menu_edit', 'temp'); + + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); + + $p->delete('ivr_menu_edit', 'temp'); + } } - unset($sql, $prep_statement, $result); + unset($result); } // update ivr menu option parameters if (file_exists($_SERVER["PROJECT_ROOT"]."/app/ivr_menu/app_config.php")){ $sql = "select ivr_menu_option_uuid, ivr_menu_option_param from v_ivr_menu_options "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; - $sql .= "and ivr_menu_option_param like '%".$original_domain_name."%' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { - // get current values - $ivr_menu_option_uuid = $row["ivr_menu_option_uuid"]; - $ivr_menu_option_param = $row["ivr_menu_option_param"]; - // replace old domain name with new domain - $ivr_menu_option_param = str_replace($original_domain_name, $domain_name, $ivr_menu_option_param); - // update db record - $sql = "update v_ivr_menu_options set "; - $sql .= "ivr_menu_option_param = '".$ivr_menu_option_param."' "; - $sql .= "where ivr_menu_option_uuid = '".$ivr_menu_option_uuid."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "where domain_uuid = :domain_uuid "; + $sql .= "and ivr_menu_option_param like :ivr_menu_option_param "; + $parameters['domain_uuid'] = $domain_uuid; + $parameters['ivr_menu_option_param'] = '%'.$original_domain_name.'%'; + $database = new database; + $result = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); + + if (is_array($result) && sizeof($result) != 0) { + foreach ($result as $index => &$row) { + // update db record + $array['ivr_menu_options'][$index]['ivr_menu_option_uuid'] = $row["ivr_menu_option_uuid"]; + $array['ivr_menu_options'][$index]['ivr_menu_option_param'] = str_replace($original_domain_name, $domain_name, $row["ivr_menu_option_param"]); + } + if (is_array($array) && sizeof($array) != 0) { + $p = new permissions; + $p->add('ivr_menu_option_edit', 'temp'); + + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); + + $p->delete('ivr_menu_option_edit', 'temp'); + } } - unset($sql, $prep_statement, $result); + unset($result); } // update call center queue record templates if (file_exists($_SERVER["PROJECT_ROOT"]."/app/call_center/app_config.php")){ $sql = "select call_center_queue_uuid, queue_record_template from v_call_center_queues "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; - $sql .= "and queue_record_template like '%".$original_domain_name."%' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { - // get current values - $call_center_queue_uuid = $row["call_center_queue_uuid"]; - $queue_record_template = $row["queue_record_template"]; - // replace old domain name with new domain - $queue_record_template = str_replace($original_domain_name, $domain_name, $queue_record_template); - // update db record - $sql = "update v_call_center_queues set "; - $sql .= "queue_record_template = '".$queue_record_template."' "; - $sql .= "where call_center_queue_uuid = '".$call_center_queue_uuid."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "where domain_uuid = :domain_uuid "; + $sql .= "and queue_record_template like :queue_record_template "; + $parameters['domain_uuid'] = $domain_uuid; + $parameters['queue_record_template'] = '%'.$original_domain_name.'%'; + $database = new database; + $result = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); + + if (is_array($result) && sizeof($result) != 0) { + foreach ($result as $index => &$row) { + // update db record + $array['call_center_queues'][$index]['call_center_queue_uuid'] = $row["call_center_queue_uuid"]; + $array['call_center_queues'][$index]['queue_record_template'] = str_replace($original_domain_name, $domain_name, $row["queue_record_template"]); + } + if (is_array($array) && sizeof($array) != 0) { + $p = new permissions; + $p->add('call_center_queue_edit', 'temp'); + + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); + + $p->delete('call_center_queue_edit', 'temp'); + } } - unset($sql, $prep_statement, $result); + unset($result); } // update call center agent contacts if (file_exists($_SERVER["PROJECT_ROOT"]."/app/call_center/app_config.php")){ $sql = "select call_center_agent_uuid, agent_contact from v_call_center_agents "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; - $sql .= "and agent_contact like '%".$original_domain_name."%' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { - // get current values - $call_center_agent_uuid = $row["call_center_agent_uuid"]; - $agent_contact = $row["agent_contact"]; - // replace old domain name with new domain - $agent_contact = str_replace($original_domain_name, $domain_name, $agent_contact); - // update db record - $sql = "update v_call_center_agents set "; - $sql .= "agent_contact = '".$agent_contact."' "; - $sql .= "where call_center_agent_uuid = '".$call_center_agent_uuid."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "where domain_uuid = :domain_uuid "; + $sql .= "and agent_contact like :agent_contact "; + $parameters['domain_uuid'] = $domain_uuid; + $parameters['agent_contact'] = '%'.$original_domain_name.'%'; + $database = new database; + $result = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); + + if (is_array($result) && sizeof($result) != 0) { + foreach ($result as $index => &$row) { + // update db record + $array['call_center_agents'][$index]['call_center_agent_uuid'] = $row["call_center_agent_uuid"]; + $array['call_center_agents'][$index]['agent_contact'] = str_replace($original_domain_name, $domain_name, $row["agent_contact"]); + } + if (is_array($array) && sizeof($array) != 0) { + $p = new permissions; + $p->add('call_center_agent_edit', 'temp'); + + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); + + $p->delete('call_center_agent_edit', 'temp'); + } } - unset($sql, $prep_statement, $result); + unset($result); } // update call flows data, alternate-data and contexts if (file_exists($_SERVER["PROJECT_ROOT"]."/app/call_flows/app_config.php")){ $sql = "select call_flow_uuid, call_flow_data, call_flow_alternate_data, call_flow_context from v_call_flows "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; + $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and ( "; - $sql .= "call_flow_data like '%".$original_domain_name."%' or "; - $sql .= "call_flow_alternate_data like '%".$original_domain_name."%' or "; - $sql .= "call_flow_context like '%".$original_domain_name."%' "; + $sql .= "call_flow_data like :call_flow_data or "; + $sql .= "call_flow_alternate_data like :call_flow_alternate_data or "; + $sql .= "call_flow_context like :call_flow_context "; $sql .= ") "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { - // get current values - $call_flow_uuid = $row["call_flow_uuid"]; - $call_flow_data = $row["call_flow_data"]; - $call_flow_alternate_data = $row["call_flow_alternate_data"]; - $call_flow_context = $row["call_flow_context"]; - // replace old domain name with new domain - $call_flow_data = str_replace($original_domain_name, $domain_name, $call_flow_data); - $call_flow_alternate_data = str_replace($original_domain_name, $domain_name, $call_flow_alternate_data); - $call_flow_context = str_replace($original_domain_name, $domain_name, $call_flow_context); - // update db record - $sql = "update v_call_flows set "; - $sql .= "call_flow_data = '".$call_flow_data."', "; - $sql .= "call_flow_alternate_data = '".$call_flow_alternate_data."', "; - $sql .= "call_flow_context = '".$call_flow_context."' "; - $sql .= "where call_flow_uuid = '".$call_flow_uuid."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $parameters['domain_uuid'] = $domain_uuid; + $parameters['call_flow_data'] = '%'.$original_domain_name.'%'; + $parameters['call_flow_alternate_data'] = '%'.$original_domain_name.'%'; + $parameters['call_flow_context'] = '%'.$original_domain_name.'%'; + $database = new database; + $result = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); + + if (is_array($result) && sizeof($result) != 0) { + foreach ($result as $index => &$row) { + // update db record + $array['call_flows'][$index]['call_flow_uuid'] = $row["call_flow_uuid"]; + $array['call_flows'][$index]['call_flow_data'] = str_replace($original_domain_name, $domain_name, $row["call_flow_data"]); + $array['call_flows'][$index]['call_flow_alternate_data'] = str_replace($original_domain_name, $domain_name, $row["call_flow_alternate_data"]); + $array['call_flows'][$index]['call_flow_context'] = str_replace($original_domain_name, $domain_name, $row["call_flow_context"]); + } + if (is_array($array) && sizeof($array) != 0) { + $p = new permissions; + $p->add('call_flow_edit', 'temp'); + + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); + + $p->delete('call_flow_edit', 'temp'); + } } - unset($sql, $prep_statement, $result); + unset($result); } // update ring group context, forward destination, timeout data if (file_exists($_SERVER["PROJECT_ROOT"]."/app/ring_groups/app_config.php")){ $sql = "select ring_group_uuid, ring_group_context, ring_group_forward_destination, ring_group_timeout_data from v_ring_groups "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; + $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and ( "; - $sql .= "ring_group_context like '%".$original_domain_name."%' or "; - $sql .= "ring_group_forward_destination like '%".$original_domain_name."%' or "; - $sql .= "ring_group_timeout_data like '%".$original_domain_name."%' "; + $sql .= "ring_group_context like :ring_group_context or "; + $sql .= "ring_group_forward_destination like :ring_group_forward_destination or "; + $sql .= "ring_group_timeout_data like :ring_group_timeout_data "; $sql .= ") "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { - // get current values - $ring_group_uuid = $row["ring_group_uuid"]; - $ring_group_context = $row["ring_group_context"]; - $ring_group_forward_destination = $row["ring_group_forward_destination"]; - $ring_group_timeout_data = $row["ring_group_timeout_data"]; - // replace old domain name with new domain - $ring_group_context = str_replace($original_domain_name, $domain_name, $ring_group_context); - $ring_group_forward_destination = str_replace($original_domain_name, $domain_name, $ring_group_forward_destination); - $ring_group_timeout_data = str_replace($original_domain_name, $domain_name, $ring_group_timeout_data); - // update db record - $sql = "update v_ring_groups set "; - $sql .= "ring_group_context = '".$ring_group_context."', "; - $sql .= "ring_group_forward_destination = '".$ring_group_forward_destination."', "; - $sql .= "ring_group_timeout_data = '".$ring_group_timeout_data."' "; - $sql .= "where ring_group_uuid = '".$ring_group_uuid."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $parameters['domain_uuid'] = $domain_uuid; + $parameters['ring_group_context'] = '%'.$original_domain_name.'%'; + $parameters['ring_group_forward_destination'] = '%'.$original_domain_name.'%'; + $parameters['ring_group_timeout_data'] = '%'.$original_domain_name.'%'; + $database = new database; + $result = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); + + if (is_array($result) && sizeof($result) != 0) { $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + foreach ($result as $index => &$row) { + // update db record + $array['ring_groups'][$index]['ring_group_uuid'] = $row["ring_group_uuid"]; + $array['ring_groups'][$index]['ring_group_context'] = str_replace($original_domain_name, $domain_name, $row["ring_group_context"]); + $array['ring_groups'][$index]['ring_group_forward_destination'] = str_replace($original_domain_name, $domain_name, $row["ring_group_forward_destination"]); + $array['ring_groups'][$index]['ring_group_timeout_data'] = str_replace($original_domain_name, $domain_name, $row["ring_group_timeout_data"]); + } + if (is_array($array) && sizeof($array) != 0) { + $p = new permissions; + $p->add('ring_group_edit', 'temp'); + + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); + + $p->delete('ring_group_edit', 'temp'); + } } - unset($sql, $prep_statement, $result); + unset($result); } // update device lines server address, outbound proxy if (file_exists($_SERVER["PROJECT_ROOT"]."/app/devices/app_config.php")){ $sql = "select device_line_uuid, server_address, outbound_proxy_primary, outbound_proxy_secondary from v_device_lines "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; + $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and ( "; - $sql .= "server_address like '%".$original_domain_name."%' or "; - $sql .= "outbound_proxy_primary like '%".$original_domain_name."%' or "; - $sql .= "outbound_proxy_secondary like '%".$original_domain_name."%' "; + $sql .= "server_address like :server_address or "; + $sql .= "outbound_proxy_primary like :outbound_proxy_primary or "; + $sql .= "outbound_proxy_secondary like :outbound_proxy_secondary "; $sql .= ") "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { - // get current values - $device_line_uuid = $row["device_line_uuid"]; - $server_address = $row["server_address"]; - $outbound_proxy_primary = $row["outbound_proxy_primary"]; - $outbound_proxy_secondary = $row["outbound_proxy_secondary"]; - // replace old domain name with new domain - $server_address = str_replace($original_domain_name, $domain_name, $server_address); - $outbound_proxy_primary = str_replace($original_domain_name, $domain_name, $outbound_proxy_primary); - $outbound_proxy_secondary = str_replace($original_domain_name, $domain_name, $outbound_proxy_secondary); - // update db record - $sql = "update v_device_lines set "; - $sql .= "server_address = '".$server_address."', "; - $sql .= "outbound_proxy_primary = '".$outbound_proxy_primary."' "; - $sql .= "outbound_proxy_secondary = '".$outbound_proxy_secondary."' "; - $sql .= "where device_line_uuid = '".$device_line_uuid."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $parameters['domain_uuid'] = $domain_uuid; + $parameters['server_address'] = '%'.$original_domain_name.'%'; + $parameters['outbound_proxy_primary'] = '%'.$original_domain_name.'%'; + $parameters['outbound_proxy_secondary'] = '%'.$original_domain_name.'%'; + $database = new database; + $result = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); + + if (is_array($result) && sizeof($result) != 0) { + foreach ($result as $index => &$row) { + // update db record + $array['device_lines'][$index]['device_line_uuid'] = $row["device_line_uuid"]; + $array['device_lines'][$index]['server_address'] = str_replace($original_domain_name, $domain_name, $row["server_address"]); + $array['device_lines'][$index]['outbound_proxy_primary'] = str_replace($original_domain_name, $domain_name, $row["outbound_proxy_primary"]); + $array['device_lines'][$index]['outbound_proxy_secondary'] = str_replace($original_domain_name, $domain_name, $row["outbound_proxy_secondary"]); + } + if (is_array($array) && sizeof($array) != 0) { + $p = new permissions; + $p->add('device_line_edit', 'temp'); + + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); + + $p->delete('device_line_edit', 'temp'); + } } - unset($sql, $prep_statement, $result); + unset($result); } // update dialplan, dialplan/public xml files @@ -542,26 +654,33 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { // update dialplan details if (file_exists($_SERVER["PROJECT_ROOT"]."/app/dialplans/app_config.php")){ $sql = "select dialplan_detail_uuid, dialplan_detail_data from v_dialplan_details "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; - $sql .= "and dialplan_detail_data like '%".$original_domain_name."%' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { - // get current values - $dialplan_detail_uuid = $row["dialplan_detail_uuid"]; - $dialplan_detail_data = $row["dialplan_detail_data"]; - // replace old domain name with new domain - $dialplan_detail_data = str_replace($original_domain_name, $domain_name, $dialplan_detail_data); - // update db record - $sql = "update v_dialplan_details set "; - $sql .= "dialplan_detail_data = '".$dialplan_detail_data."' "; - $sql .= "where dialplan_detail_uuid = '".$dialplan_detail_uuid."' "; - $sql .= "and domain_uuid = '".$domain_uuid."' "; - $db->exec(check_sql($sql)); - unset($sql); + $sql .= "where domain_uuid = :domain_uuid "; + $sql .= "and dialplan_detail_data like :dialplan_detail_data "; + $parameters['domain_uuid'] = $domain_uuid; + $parameters['dialplan_detail_data'] = '%'.$original_domain_name.'%'; + $database = new database; + $result = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); + + if (is_array($result) && sizeof($result) != 0) { + foreach ($result as $index => &$row) { + $array['dialplan_detail'][$index]['dialplan_detail_uuid'] = $row["dialplan_detail_uuid"]; + $array['dialplan_detail'][$index]['dialplan_detail_data'] = str_replace($original_domain_name, $domain_name, $row["dialplan_detail_data"]); + } + if (is_array($array) && sizeof($array) != 0) { + $p = new permissions; + $p->add('dialplan_detail_edit', 'temp'); + + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); + + $p->delete('dialplan_detail_edit', 'temp'); + } } - unset($sql, $prep_statement, $result); + unset($result); } // update session domain name @@ -580,10 +699,14 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { // if single-tenant and variables exist, update variables > domain value to match new domain if (count($_SESSION['domains']) == 1 && file_exists($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH."/app/vars/")) { $sql = "update v_vars set "; - $sql .= "var_value = '".$domain_name."' "; + $sql .= "var_value = :var_value "; $sql .= "where var_name = 'domain' "; - $db->exec(check_sql($sql)); - unset($sql); + $parameters['var_value'] = $domain_name; + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->execute($sql, $parameters); + unset($sql, $parameters); } } } @@ -621,16 +744,16 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { //pre-populate the form (admin won't have domain_add permissions, but domain_uuid will already be set above) if ((count($_GET) > 0 || (!permission_exists('domain_add') && $domain_uuid != '')) && $_POST["persistformvar"] != "true") { $sql = "select * from v_domains "; - $sql .= "where domain_uuid = '$domain_uuid' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { + $sql .= "where domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $row = $database->select($sql, $parameters, 'row'); + if (is_array($row) && sizeof($row) != 0) { $domain_name = strtolower($row["domain_name"]); $domain_enabled = $row["domain_enabled"]; $domain_description = $row["domain_description"]; } - unset ($prep_statement); + unset($sql, $parameters, $row); } //show the header @@ -778,7 +901,7 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { echo ""; - if (permission_exists('domain_setting_edit') && $action == "update") { + if ($action == "update" && permission_exists('domain_setting_view')) { require "domain_settings.php"; } diff --git a/core/domain_settings/domain_setting_delete.php b/core/domain_settings/domain_setting_delete.php index 09b16f2b2e..f73ef9c7cb 100644 --- a/core/domain_settings/domain_setting_delete.php +++ b/core/domain_settings/domain_setting_delete.php @@ -38,25 +38,27 @@ else { $language = new text; $text = $language->get(); -//get the variables - if (count($_GET)>0) { - $id = check_str($_GET["id"]); - $domain_uuid = check_str($_GET["domain_uuid"]); - } - //delete the record - if (strlen($id) > 0) { + if (is_uuid($_GET["id"]) && is_uuid($_GET["domain_uuid"])) { + + $domain_setting_uuid = $_GET["id"]; + $domain_uuid = $_GET["domain_uuid"]; + //delete domain_setting - $sql = "delete from v_domain_settings "; - $sql .= "where domain_uuid = '$domain_uuid' "; - $sql .= "and domain_setting_uuid = '$id' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - unset($sql); + $array['domain_settings'][0]['domain_setting_uuid'] = $domain_setting_uuid; + $array['domain_settings'][0]['domain_uuid'] = $domain_uuid; + + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->delete($array); + unset($array); + + //set message + message::add($text['message-delete']); } //redirect the user - message::add($text['message-delete']); header("Location: domain_edit.php?id=".$domain_uuid); return; diff --git a/core/domain_settings/domain_setting_edit.php b/core/domain_settings/domain_setting_edit.php index d43ecec3dd..14a5a5826a 100644 --- a/core/domain_settings/domain_setting_edit.php +++ b/core/domain_settings/domain_setting_edit.php @@ -62,35 +62,35 @@ } //action add or update - if (isset($_REQUEST["id"])) { + if (is_uuid($_REQUEST["id"])) { $action = "update"; - $domain_setting_uuid = check_str($_REQUEST["id"]); + $domain_setting_uuid = $_REQUEST["id"]; } else { $action = "add"; } //set the domain_uuid - if (strlen($_GET["domain_uuid"]) > 0) { - $domain_uuid = check_str($_GET["domain_uuid"]); + if (is_uuid($_GET["domain_uuid"])) { + $domain_uuid = $_GET["domain_uuid"]; } //get http post variables and set them to php variables if (count($_POST) > 0) { - $domain_setting_category = strtolower(check_str($_POST["domain_setting_category"])); - $domain_setting_subcategory = strtolower(check_str($_POST["domain_setting_subcategory"])); - $domain_setting_name = strtolower(check_str($_POST["domain_setting_name"])); - $domain_setting_value = check_str($_POST["domain_setting_value"]); - $domain_setting_order = check_str($_POST["domain_setting_order"]); - $domain_setting_enabled = strtolower(check_str($_POST["domain_setting_enabled"])); - $domain_setting_description = check_str($_POST["domain_setting_description"]); + $domain_setting_category = strtolower($_POST["domain_setting_category"]); + $domain_setting_subcategory = strtolower($_POST["domain_setting_subcategory"]); + $domain_setting_name = strtolower($_POST["domain_setting_name"]); + $domain_setting_value = $_POST["domain_setting_value"]; + $domain_setting_order = $_POST["domain_setting_order"]; + $domain_setting_enabled = strtolower($_POST["domain_setting_enabled"]); + $domain_setting_description = $_POST["domain_setting_description"]; } if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { $msg = ''; if ($action == "update") { - $domain_setting_uuid = check_str($_POST["domain_setting_uuid"]); + $domain_setting_uuid = $_POST["domain_setting_uuid"]; } //check for all required/authorized data @@ -117,82 +117,69 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { //add or update the database if ($_POST["persistformvar"] != "true") { // fix null - $domain_setting_order = ($domain_setting_order != '') ? $domain_setting_order : 'null'; + $domain_setting_order = $domain_setting_order != '' ? $domain_setting_order : 'null'; //update switch timezone variables if ($domain_setting_category == "domain" && $domain_setting_subcategory == "time_zone" && $domain_setting_name == "name" ) { //get the dialplan_uuid - $sql = "select * from v_dialplans "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; + $sql = "select dialplan_uuid from v_dialplans "; + $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and app_uuid = '9f356fe7-8cf8-4c14-8fe2-6daf89304458' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as $row) { - $dialplan_uuid = $row["dialplan_uuid"]; - } - unset ($prep_statement); + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $dialplan_uuid = $database->select($sql, $parameters, 'column'); + unset($sql, $parameters); //get the action - $sql = "select * from v_dialplan_details "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; - $sql .= "and dialplan_uuid = '".$dialplan_uuid."' "; + $sql = "select dialplan_detail_uuid from v_dialplan_details "; + $sql .= "where domain_uuid = :domain_uuid "; + $sql .= "and dialplan_uuid = :dialplan_uuid "; $sql .= "and dialplan_detail_tag = 'action' "; $sql .= "and dialplan_detail_type = 'set' "; $sql .= "and dialplan_detail_data like 'timezone=%' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - $detail_action = "add"; - foreach ($result as $row) { - $dialplan_detail_uuid = $row["dialplan_detail_uuid"]; - $detail_action = "update"; - } - unset ($prep_statement); + $parameters['domain_uuid'] = $domain_uuid; + $parameters['dialplan_uuid'] = $dialplan_uuid; + $database = new database; + $dialplan_detail_uuid = $database->select($sql, $parameters, 'column'); + $detail_action = is_uuid($dialplan_detail_uuid) ? 'update' : 'add'; + unset($sql, $parameters); //update the timezone + $p = new permissions; if ($detail_action == "update") { - $sql = "update v_dialplan_details "; - $sql .= "set dialplan_detail_data = 'timezone=".$domain_setting_value."' "; - $sql .= "where dialplan_detail_uuid = '".$dialplan_detail_uuid."' "; + $array['dialplan_details'][0]['dialplan_detail_uuid'] = $dialplan_detail_uuid; + $array['dialplan_details'][0]['dialplan_detail_data'] = 'timezone='.$domain_setting_value; + $p->add('dialplan_detail_edit', 'temp'); } else { - $dialplan_detail_uuid = uuid(); - $dialplan_detail_group = 0; - $sql = "insert into v_dialplan_details "; - $sql .= "("; - $sql .= "domain_uuid, "; - $sql .= "dialplan_detail_uuid, "; - $sql .= "dialplan_uuid, "; - $sql .= "dialplan_detail_tag, "; - $sql .= "dialplan_detail_type, "; - $sql .= "dialplan_detail_data, "; - $sql .= "dialplan_detail_inline, "; - $sql .= "dialplan_detail_group "; - $sql .= ") "; - $sql .= "values "; - $sql .= "("; - $sql .= "'".$domain_uuid."', "; - $sql .= "'".$dialplan_detail_uuid."', "; - $sql .= "'".$dialplan_uuid."', "; - $sql .= "'action', "; - $sql .= "'set', "; - $sql .= "'timezone=".$domain_setting_value."', "; - $sql .= "'true', "; - $sql .= "'".$dialplan_detail_group."' "; - $sql .= "); "; + $array['dialplan_details'][0]['dialplan_detail_uuid'] = uuid(); + $array['dialplan_details'][0]['domain_uuid'] = $domain_uuid; + $array['dialplan_details'][0]['dialplan_uuid'] = $dialplan_uuid; + $array['dialplan_details'][0]['dialplan_detail_tag'] = 'action'; + $array['dialplan_details'][0]['dialplan_detail_type'] = 'set'; + $array['dialplan_details'][0]['dialplan_detail_data'] = 'timezone=".$domain_setting_value."'; + $array['dialplan_details'][0]['dialplan_detail_inline'] = 'true'; + $array['dialplan_details'][0]['dialplan_detail_group'] = '0'; + $p->add('dialplan_detail_add', 'temp'); } - $db->query($sql); - unset($sql); + if (is_array($array) && sizeof($array) != 0) { + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); - //get the dialplan_uuid - $sql = "select * from v_domains "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $row = $prep_statement->fetch(PDO::FETCH_NAMED); - $domain_name = $row["domain_name"]; - unset ($prep_statement); + $p->delete('dialplan_detail_edit', 'temp'); + $p->delete('dialplan_detail_add', 'temp'); + } + + //get the dialplan uuid + $sql = "select domain_name from v_domains "; + $sql .= "where domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $domain_name = $database->select($sql, $parameters, 'column'); + unset($sql, $parameters); //update the dialplan xml $dialplans = new dialplan; @@ -206,132 +193,111 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { $cache->delete("dialplan:".$domain_name); } - //add the domain + //add if ($action == "add" && permission_exists('domain_setting_add')) { - $sql = "insert into v_domain_settings "; - $sql .= "("; - $sql .= "domain_uuid, "; - $sql .= "domain_setting_uuid, "; - $sql .= "domain_setting_category, "; - $sql .= "domain_setting_subcategory, "; - $sql .= "domain_setting_name, "; - $sql .= "domain_setting_value, "; - $sql .= "domain_setting_order, "; - $sql .= "domain_setting_enabled, "; - $sql .= "domain_setting_description "; - $sql .= ")"; - $sql .= "values "; - $sql .= "("; - $sql .= "'$domain_uuid', "; - $sql .= "'".uuid()."', "; - $sql .= "'$domain_setting_category', "; - $sql .= "'$domain_setting_subcategory', "; - $sql .= "'$domain_setting_name', "; - $sql .= "'$domain_setting_value', "; - $sql .= "$domain_setting_order, "; - $sql .= "'$domain_setting_enabled', "; - $sql .= "'$domain_setting_description' "; - $sql .= ")"; - $db->exec(check_sql($sql)); - unset($sql); - } //if ($action == "add") + $array['domain_settings'][0]['domain_setting_uuid'] = uuid(); + } - //update the domain + //update if ($action == "update" && permission_exists('domain_setting_edit')) { - $sql = "update v_domain_settings set "; - $sql .= "domain_setting_category = '$domain_setting_category', "; - $sql .= "domain_setting_subcategory = '$domain_setting_subcategory', "; - $sql .= "domain_setting_name = '$domain_setting_name', "; - $sql .= "domain_setting_value = '$domain_setting_value', "; - $sql .= "domain_setting_order = $domain_setting_order, "; - $sql .= "domain_setting_enabled = '$domain_setting_enabled', "; - $sql .= "domain_setting_description = '$domain_setting_description' "; - $sql .= "where domain_uuid = '$domain_uuid' "; - $sql .= "and domain_setting_uuid = '$domain_setting_uuid'"; - $db->exec(check_sql($sql)); - unset($sql); - } //if ($action == "update") + $array['domain_settings'][0]['domain_setting_uuid'] = $domain_setting_uuid; + } + //execute + if (is_uuid($array['domain_settings'][0]['domain_setting_uuid'])) { + $array['domain_settings'][0]['domain_uuid'] = $domain_uuid; + $array['domain_settings'][0]['domain_setting_category'] = $domain_setting_category; + $array['domain_settings'][0]['domain_setting_subcategory'] = $domain_setting_subcategory; + $array['domain_settings'][0]['domain_setting_name'] = $domain_setting_name; + $array['domain_settings'][0]['domain_setting_value'] = $domain_setting_value; + $array['domain_settings'][0]['domain_setting_order'] = $domain_setting_order; + $array['domain_settings'][0]['domain_setting_enabled'] = $domain_setting_enabled; + $array['domain_settings'][0]['domain_setting_description'] = $domain_setting_description; + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); + } //update time zone if ($domain_setting_category == "domain" && $domain_setting_subcategory == "time_zone" && $domain_setting_name == "name" && strlen($domain_setting_value) > 0 ) { $sql = "select * from v_dialplans "; $sql .= "where app_uuid = '34dd307b-fffe-4ead-990c-3d070e288126' "; - $sql .= "and domain_uuid = '".$_SESSION["domain_uuid"]."' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - $time_zone_found = false; - foreach ($result as &$row) { - //get the dialplan_uuid - $dialplan_uuid = $row["dialplan_uuid"]; + $sql .= "and domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $_SESSION["domain_uuid"]; + $database = new database; + $result = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); - //get the dialplan details - $sql = "select * from v_dialplan_details "; - $sql .= "where dialplan_uuid = '".$dialplan_uuid."' "; - $sql .= "and domain_uuid = '".$_SESSION["domain_uuid"]."' "; - $sub_prep_statement = $db->prepare(check_sql($sql)); - $sub_prep_statement->execute(); - $sub_result = $sub_prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($sub_result as $field) { - $dialplan_detail_uuid = $field["dialplan_detail_uuid"]; - $dialplan_detail_tag = $field["dialplan_detail_tag"]; //action //condition - $dialplan_detail_type = $field["dialplan_detail_type"]; //set - $dialplan_detail_data = $field["dialplan_detail_data"]; - $dialplan_detail_group = $field["dialplan_detail_group"]; - if ($dialplan_detail_tag == "action" && $dialplan_detail_type == "set") { - $data_array = explode("=", $dialplan_detail_data); - if ($data_array[0] == "timezone") { - $time_zone_found = true; - break; + $time_zone_found = false; + if (is_array($result) && sizeof($result) != 0) { + foreach ($result as &$row) { + //get the dialplan_uuid + $dialplan_uuid = $row["dialplan_uuid"]; + + //get the dialplan details + $sql = "select * from v_dialplan_details "; + $sql .= "where dialplan_uuid = :dialplan_uuid "; + $sql .= "and domain_uuid = :domain_uuid "; + $parameters['dialplan_uuid'] = $dialplan_uuid; + $parameters['domain_uuid'] = $_SESSION["domain_uuid"]; + $database = new database; + $sub_result = $database->select($sql, $parameters, 'all'); + if (is_array($sub_result) && sizeof($sub_result) != 0) { + foreach ($sub_result as $field) { + $dialplan_detail_uuid = $field["dialplan_detail_uuid"]; + $dialplan_detail_tag = $field["dialplan_detail_tag"]; //action //condition + $dialplan_detail_type = $field["dialplan_detail_type"]; //set + $dialplan_detail_data = $field["dialplan_detail_data"]; + $dialplan_detail_group = $field["dialplan_detail_group"]; + if ($dialplan_detail_tag == "action" && $dialplan_detail_type == "set") { + $data_array = explode("=", $dialplan_detail_data); + if ($data_array[0] == "timezone") { + $time_zone_found = true; + break; + } + } } } - } + unset($sql, $parameters, $sub_result, $field); - //add the time zone - if (!$time_zone_found) { - //$dialplan_detail_uuid = uuid(); - $dialplan_detail_uuid = "eb3b3a4e-88ea-4306-b2a8-9f52d3c95f2f"; - $sql = "insert into v_dialplan_details "; - $sql .= "("; - $sql .= "domain_uuid, "; - $sql .= "dialplan_uuid, "; - $sql .= "dialplan_detail_uuid, "; - $sql .= "dialplan_detail_tag, "; - $sql .= "dialplan_detail_type, "; - $sql .= "dialplan_detail_data, "; - $sql .= "dialplan_detail_group, "; - $sql .= "dialplan_detail_order "; - $sql .= ") "; - $sql .= "values "; - $sql .= "("; - $sql .= "'".$_SESSION["domain_uuid"]."', "; //8cfd9525-6ccf-4c2c-813a-bca5809067cd - $sql .= "'$dialplan_uuid', "; //807b4aa6-4478-4663-a661-779397c1d542 - $sql .= "'$dialplan_detail_uuid', "; - $sql .= "'action', "; - $sql .= "'set', "; - $sql .= "'timezone=$domain_setting_value', "; - if (strlen($dialplan_detail_group) > 0) { - $sql .= "'$dialplan_detail_group', "; - } - else { - $sql .= "null, "; - } - $sql .= "'15' "; - $sql .= ")"; - $db->exec(check_sql($sql)); - unset($sql); - } + //add the time zone + if (!$time_zone_found) { + $dialplan_detail_uuid = "eb3b3a4e-88ea-4306-b2a8-9f52d3c95f2f"; + $array['dialplan_details'][0]['domain_uuid'] = $_SESSION["domain_uuid"]; //8cfd9525-6ccf-4c2c-813a-bca5809067cd + $array['dialplan_details'][0]['dialplan_uuid'] = $dialplan_uuid; //807b4aa6-4478-4663-a661-779397c1d542 + $array['dialplan_details'][0]['dialplan_detail_uuid'] = $dialplan_detail_uuid; + $array['dialplan_details'][0]['dialplan_detail_tag'] = 'action'; + $array['dialplan_details'][0]['dialplan_detail_type'] = 'set'; + $array['dialplan_details'][0]['dialplan_detail_data'] = 'timezone='.$domain_setting_value; + $array['dialplan_details'][0]['dialplan_detail_group'] = $dialplan_detail_group; + $array['dialplan_details'][0]['dialplan_detail_order'] = '15'; - //update the time zone - if ($time_zone_found) { - $sql = "update v_dialplan_details set "; - $sql .= "dialplan_detail_data = 'timezone=".$domain_setting_value."' "; - $sql .= "where domain_uuid = '".$_SESSION["domain_uuid"]."' "; - $sql .= "and dialplan_uuid = '$dialplan_uuid' "; - $sql .= "and dialplan_detail_uuid = '$dialplan_detail_uuid' "; - $db->exec(check_sql($sql)); - unset($sql); - } + $p = new permissions; + $p->add('dialplan_detail_add', 'temp'); + } + + //update the time zone + if ($time_zone_found) { + $array['dialplan_details'][0]['dialplan_detail_uuid'] = $dialplan_detail_uuid; + $array['dialplan_details'][0]['dialplan_detail_data'] = 'timezone='.$domain_setting_value; + + $p = new permissions; + $p->add('dialplan_detail_edit', 'temp'); + } + + //execute + if (is_array($array) && sizeof($array) != 0) { + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); + + $p->delete('dialplan_detail_add', 'temp'); + $p->delete('dialplan_detail_edit', 'temp'); + } + } } } @@ -343,20 +309,21 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { message::add($text['message-add']); } header("Location: domain_edit.php?id=".$domain_uuid); - return; - } //if ($_POST["persistformvar"] != "true") -} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) + exit; + } +} //pre-populate the form - if (count($_GET)>0 && $_POST["persistformvar"] != "true") { - $domain_setting_uuid = check_str($_GET["id"]); + if (count($_GET)>0 && $_POST["persistformvar"] != "true" && is_uuid($_GET["id"])) { + $domain_setting_uuid = $_GET["id"]; $sql = "select * from v_domain_settings "; - $sql .= "where domain_uuid = '$domain_uuid' "; - $sql .= "and domain_setting_uuid = '$domain_setting_uuid' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { + $sql .= "where domain_uuid = :domain_uuid "; + $sql .= "and domain_setting_uuid = :domain_setting_uuid "; + $parameters['domain_uuid'] = $domain_uuid; + $parameters['domain_setting_uuid'] = $domain_setting_uuid; + $database = new database; + $row = $database->select($sql, $parameters, 'row'); + if (is_array($row) && sizeof($row) != 0) { $domain_setting_category = $row["domain_setting_category"]; $domain_setting_subcategory = $row["domain_setting_subcategory"]; $domain_setting_name = $row["domain_setting_name"]; @@ -364,9 +331,8 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { $domain_setting_order = $row["domain_setting_order"]; $domain_setting_enabled = $row["domain_setting_enabled"]; $domain_setting_description = $row["domain_setting_description"]; - break; //limit to 1 row } - unset ($prep_statement); + unset($sql, $parameters, $row); } //show the header @@ -464,21 +430,17 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { if ($category == "domain" && $subcategory == "menu" && $name == "uuid" ) { echo " \n"; } elseif ($category == "domain" && $subcategory == "template" && $name == "name" ) { diff --git a/core/domain_settings/domain_settings.php b/core/domain_settings/domain_settings.php index 32126832c4..8ee87d0cab 100644 --- a/core/domain_settings/domain_settings.php +++ b/core/domain_settings/domain_settings.php @@ -40,20 +40,26 @@ //toggle enabled if (sizeof($_REQUEST) > 1) { //get the variables - $action = check_str($_REQUEST["action"]); - $domain_uuid = check_str($_REQUEST["domain_id"]); + $action = $_REQUEST["action"]; + $domain_uuid = $_REQUEST["domain_id"]; $domain_setting_uuids = $_REQUEST["id"]; - $enabled = check_str($_REQUEST['enabled']); + $enabled = $_REQUEST['enabled']; //change enabled value - if ($domain_uuid != '' && sizeof($domain_setting_uuids) == 1 && $enabled != '') { - $sql = "update v_domain_settings set "; - $sql .= "domain_setting_enabled = '".$enabled."' "; - $sql .= "where domain_uuid = '".$domain_uuid."' "; - $sql .= "and domain_setting_uuid = '".$domain_setting_uuids[0]."' "; - //echo $sql."

"; - $db->exec(check_sql($sql)); - unset($sql); + if ( + permission_exists('domain_setting_edit') && + is_uuid($domain_uuid) && + is_array($domain_setting_uuids) && + sizeof($domain_setting_uuids) == 1 && + ($enabled == 'true' || $enabled == 'false') + ) { + $array['domain_settings'][0]['domain_setting_uuid'] = $domain_setting_uuids[0]; + $array['domain_settings'][0]['domain_setting_enabled'] = $enabled; + $database = new database; + $database->app_name = 'domains'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); message::add($text['message-update']); header("Location: domain_edit.php?id=".$domain_uuid); @@ -62,100 +68,96 @@ //copy domain settings if ($action == 'copy' && permission_exists('domain_setting_add')) { - $target_domain_uuid = check_str($_POST["target_domain_uuid"]); + $target_domain_uuid = $_POST["target_domain_uuid"]; - if ($target_domain_uuid != '' && sizeof($domain_setting_uuids) > 0) { - $settings_copied = 0; - foreach ($domain_setting_uuids as $domain_setting_uuid) { + if (is_uuid($target_domain_uuid) && is_array($domain_setting_uuids) && sizeof($domain_setting_uuids) != 0) { + foreach ($domain_setting_uuids as $index => $domain_setting_uuid) { - // get default setting from db - $sql = "select * from v_domain_settings "; - $sql .= "where domain_setting_uuid = '".$domain_setting_uuid."' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach ($result as &$row) { - $domain_setting_uuid = $row["default_setting_uuid"]; - $domain_setting_category = $row["default_setting_category"]; - $domain_setting_subcategory = $row["default_setting_subcategory"]; - $domain_setting_name = $row["default_setting_name"]; - $domain_setting_value = $row["default_setting_value"]; - $domain_setting_order = $row["default_setting_order"]; - $domain_setting_enabled = $row["default_setting_enabled"]; - $domain_setting_description = $row["default_setting_description"]; - } - unset ($prep_statement); + if (is_uuid($domain_setting_uuid)) { - //set a random password for http_auth_password - if ($domain_setting_subcategory == "http_auth_password") { - $domain_setting_value = generate_password(); - } - - // check if exists - $sql = "select domain_setting_uuid from v_domain_settings "; - $sql .= "where domain_uuid = '".$target_domain_uuid."' "; - $sql .= "and domain_setting_category = '".$domain_setting_category."' "; - $sql .= "and domain_setting_subcategory = '".$domain_setting_subcategory."' "; - $sql .= "and domain_setting_name = '".$domain_setting_name."' "; - $sql .= "and domain_setting_name <> 'array' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - if (sizeof($result) > 0) { - foreach ($result as &$row) { - $target_domain_setting_uuid = $row["domain_setting_uuid"]; - break; + // get default setting from db + $sql = "select * from v_domain_settings "; + $sql .= "where domain_setting_uuid = :domain_setting_uuid "; + $parameters['domain_setting_uuid'] = $domain_setting_uuid; + $database = new database; + $row = $database->select($sql, $parameters, 'row'); + if (is_array($row) && sizeof($row) != 0) { + $domain_setting_uuid = $row["default_setting_uuid"]; + $domain_setting_category = $row["default_setting_category"]; + $domain_setting_subcategory = $row["default_setting_subcategory"]; + $domain_setting_name = $row["default_setting_name"]; + $domain_setting_value = $row["default_setting_value"]; + $domain_setting_order = $row["default_setting_order"]; + $domain_setting_enabled = $row["default_setting_enabled"]; + $domain_setting_description = $row["default_setting_description"]; } - $action = "update"; - } - else { - $action = "add"; - $target_domain_setting_uuid = uuid(); - } - unset ($prep_statement); + unset($sql, $parameters, $row); - // fix null - $domain_setting_order = ($domain_setting_order != '') ? $domain_setting_order : 'null'; + //set a random password for http_auth_password + if ($domain_setting_subcategory == "http_auth_password") { + $domain_setting_value = generate_password(); + } - //prepare the array - $array['domain_settings'][$x]['domain_uuid'] = $target_domain_uuid; - $array['domain_settings'][$x]['domain_setting_uuid'] = $target_domain_setting_uuid; - $array['domain_settings'][$x]['default_setting_category'] = $default_setting_category; - $array['domain_settings'][$x]['domain_setting_uuid'] = $default_setting_subcategory; - $array['domain_settings'][$x]['domain_setting_uuid'] = $default_setting_name; - $array['domain_settings'][$x]['domain_setting_uuid'] = $default_setting_value; - $array['domain_settings'][$x]['domain_setting_uuid'] = $default_setting_order; - $array['domain_settings'][$x]['domain_setting_uuid'] = $default_setting_enabled; - $array['domain_settings'][$x]['domain_setting_uuid'] = $default_setting_description; - $x++; + // check if exists + $sql = "select domain_setting_uuid from v_domain_settings "; + $sql .= "where domain_uuid = :domain_uuid "; + $sql .= "and domain_setting_category = :domain_setting_category "; + $sql .= "and domain_setting_subcategory = :domain_setting_subcategory "; + $sql .= "and domain_setting_name = :domain_setting_name "; + $sql .= "and domain_setting_name <> 'array' "; + $parameters['domain_uuid'] = $target_domain_uuid; + $parameters['domain_setting_category'] = $domain_setting_category; + $parameters['domain_setting_subcategory'] = $domain_setting_subcategory; + $parameters['domain_setting_name'] = $domain_setting_name; + $database = new database; + $target_domain_setting_uuid = $database->select($sql, $parameters, 'column'); + if (is_uuid($target_domain_setting_uuid)) { + $action = "update"; + } + else { + $action = "add"; + $target_domain_setting_uuid = uuid(); + } + unset($sql, $parameters); + + // fix null + $domain_setting_order = $domain_setting_order != '' ? $domain_setting_order : 'null'; + + //prepare the array + $array['domain_settings'][$index]['domain_uuid'] = $target_domain_uuid; + $array['domain_settings'][$index]['domain_setting_uuid'] = $target_domain_setting_uuid; + $array['domain_settings'][$index]['default_setting_category'] = $default_setting_category; + $array['domain_settings'][$index]['domain_setting_uuid'] = $default_setting_subcategory; + $array['domain_settings'][$index]['domain_setting_uuid'] = $default_setting_name; + $array['domain_settings'][$index]['domain_setting_uuid'] = $default_setting_value; + $array['domain_settings'][$index]['domain_setting_uuid'] = $default_setting_order; + $array['domain_settings'][$index]['domain_setting_uuid'] = $default_setting_enabled; + $array['domain_settings'][$index]['domain_setting_uuid'] = $default_setting_description; + + } } // foreach - //save to the data - $database = new database; - $database->app_name = 'domain_settings'; - $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; - //if (strlen($stream_uuid) > 0) { - // $database->uuid($stream_uuid); - //} - $database->save($array); - $message = $database->message; + //save the data + if (is_array($array) && sizeof($array) != 0) { + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + $message = $database->message; - //debug info - //echo "
";
-					//print_r($message);
-					//echo "
"; - //exit; + // set message + $_SESSION["message"] = $text['message-copy'].": ".sizeof($array); - // set message - $_SESSION["message"] = $text['message-copy'].": ".escape($settings_copied); + unset($array); + } } else { // set message message::add($text['message-copy_failed']); } - header("Location: default_settings.php".(($search != '') ? "?search=".escape($search) : null)); + header("Location: default_settings.php".($search != '' ? "?search=".escape($search) : null)); exit; } @@ -165,16 +167,24 @@ $language = new text; $text = $language->get(); - if (sizeof($domain_setting_uuids) > 0) { - foreach ($domain_setting_uuids as $domain_setting_uuid) { - $sql = "delete from v_domain_settings "; - $sql .= "where domain_setting_uuid = '".$domain_setting_uuid."' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - unset ($prep_statement, $sql); + if (is_array($domain_setting_uuids) && sizeof($domain_setting_uuids) != 0) { + foreach ($domain_setting_uuids as $index => $domain_setting_uuid) { + if (is_uuid($domain_setting_uuid)) { + $array['domain_settings'][$index]['domain_setting_uuid'] = $domain_setting_uuid; + } + } + if (is_array($array) && sizeof($array) != 0) { + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->delete($array); + $message = $database->message; + + // set message + $_SESSION["message"] = $text['message-delete'].": ".sizeof($array); + + unset($array); } - // set message - $_SESSION["message"] = $text['message-delete'].": ".sizeof($domain_setting_uuids); } else { // set message @@ -190,8 +200,8 @@ require_once "resources/paging.php"; //get the variables - $order_by = check_str($_GET["order_by"]); - $order = check_str($_GET["order"]); + $order_by = $_GET["order_by"]; + $order = $_GET["order"]; //show the content echo "
"; @@ -199,20 +209,12 @@ echo ""; //prepare to page the results - $sql = "select count(*) as num_rows from v_domain_settings "; - $sql .= "where domain_uuid = '$domain_uuid' "; - $prep_statement = $db->prepare($sql); - if ($prep_statement) { - $prep_statement->execute(); - $row = $prep_statement->fetch(PDO::FETCH_ASSOC); - if ($row['num_rows'] > 0) { - $num_rows = $row['num_rows']; - } - else { - $num_rows = '0'; - } - unset ($prep_statement, $sql); - } + $sql = "select count(*) from v_domain_settings "; + $sql .= "where domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $num_rows = $database->select($sql, $parameters, 'column'); + unset($sql); //prepare to page the results $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 1000; @@ -224,19 +226,18 @@ //get the list $sql = "select * from v_domain_settings "; - $sql .= "where domain_uuid = '$domain_uuid' "; - if (strlen($order_by) == 0) { + $sql .= "where domain_uuid = :domain_uuid "; + if ($order_by == '') { $sql .= "order by domain_setting_category, domain_setting_subcategory, domain_setting_order asc, domain_setting_name, domain_setting_value "; } else { - $sql .= "order by $order_by $order "; + $sql .= order_by($order_by, $order); } - $sql .= "limit $rows_per_page offset $offset "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - $result_count = count($result); - unset ($prep_statement, $sql); + $sql .= limit_offset($rows_per_page, $offset); + $database = new database; + $result = $database->select($sql, $parameters, 'all'); + $result_count = sizeof($result); + unset($sql, $parameters); $c = 0; $row_style["0"] = "row_style0"; @@ -245,7 +246,7 @@ //show the content echo "\n"; - if ($result_count > 0) { + if (is_array($result) && sizeof($result) != 0) { $previous_category = ''; foreach($result as $row) { if ($previous_category != $row['domain_setting_category']) { @@ -314,14 +315,16 @@ $name = $row['domain_setting_name']; if ($category == "domain" && $subcategory == "menu" && $name == "uuid" ) { $sql = "select * from v_menus "; - $sql .= "where menu_uuid = '".$row['domain_setting_value']."' "; - $sub_prep_statement = $db->prepare(check_sql($sql)); - $sub_prep_statement->execute(); - $sub_result = $sub_prep_statement->fetchAll(PDO::FETCH_NAMED); - unset ($prep_statement, $sql); - foreach ($sub_result as &$sub_row) { - echo escape($sub_row["menu_language"])." - ".escape($sub_row["menu_name"])."\n"; + $sql .= "where menu_uuid = :menu_uuid "; + $parameters['menu_uuid'] = $row['domain_setting_value']; + $database = new database; + $sub_result = $database->select($sql, $parameters, 'all'); + if (is_array($sub_result) && sizeof($sub_result) != 0) { + foreach ($sub_result as &$sub_row) { + echo escape($sub_row["menu_language"])." - ".escape($sub_row["menu_name"])."\n"; + } } + unset($sql, $parameters, $sub_result, $sub_row); } else if ($category == "domain" && $subcategory == "template" && $name == "name" ) { echo " ".ucwords($row['domain_setting_value']); diff --git a/core/domain_settings/domains.php b/core/domain_settings/domains.php index 4a6881a7a7..48e7a9e7d4 100644 --- a/core/domain_settings/domains.php +++ b/core/domain_settings/domains.php @@ -47,30 +47,31 @@ $text = $language->get(); //change the domain - if (strlen(check_str($_GET["domain_uuid"])) > 0 && check_str($_GET["domain_change"]) == "true") { + if (is_uuid($_GET["domain_uuid"]) && $_GET["domain_change"] == "true") { if (permission_exists('domain_select')) { //get the domain_uuid $sql = "select * from v_domains "; $sql .= "order by domain_name asc "; - $prep_statement = $db->prepare($sql); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach($result as $row) { - if (count($result) == 0) { - $_SESSION["domain_uuid"] = $row["domain_uuid"]; - $_SESSION["domain_name"] = $row['domain_name']; - } - else { - if ($row['domain_name'] == $domain_array[0] || $row['domain_name'] == 'www.'.$domain_array[0]) { + $database = new database; + $result = $database->select($sql, null, 'all'); + if (is_array($result) && sizeof($result) != 0) { + foreach($result as $row) { + if (count($result) == 0) { $_SESSION["domain_uuid"] = $row["domain_uuid"]; $_SESSION["domain_name"] = $row['domain_name']; } + else { + if ($row['domain_name'] == $domain_array[0] || $row['domain_name'] == 'www.'.$domain_array[0]) { + $_SESSION["domain_uuid"] = $row["domain_uuid"]; + $_SESSION["domain_name"] = $row['domain_name']; + } + } } } - unset($result, $prep_statement); + unset($sql, $result); //update the domain session variables - $domain_uuid = check_str($_GET["domain_uuid"]); + $domain_uuid = $_GET["domain_uuid"]; $_SESSION['domain_uuid'] = $domain_uuid; $_SESSION["domain_name"] = $_SESSION['domains'][$domain_uuid]['domain_name']; $_SESSION['domain']['template']['name'] = $_SESSION['domains'][$domain_uuid]['template_name']; @@ -91,7 +92,7 @@ else { header("Location: ".PROJECT_PATH."/core/user_settings/user_dashboard.php"); } - return; + exit; } } @@ -106,31 +107,26 @@ require_once "resources/paging.php"; //get the http values and set them as variables - $search = check_str($_GET["search"]); - if (isset($_GET["order_by"])) { - $order_by = check_str($_GET["order_by"]); - $order = check_str($_GET["order"]); + $search = $_GET["search"]; + $order_by = $_GET["order_by"] != '' ? $_GET["order_by"] : 'domain_name'; + $order = $_GET["order"]; + +//prepare search + if ($search != '') { + $sql_where = "where ("; + $sql_where .= " lower(domain_name) like :domain_name "; + $sql_where .= " or domain_description like :domain_description "; + $sql_where .= ") "; + $parameters['domain_name'] = '%'.strtolower($search).'%'; + $parameters['domain_description'] = '%'.strtolower($search).'%'; } //prepare to page the results - $sql = "select count(*) as num_rows from v_domains "; - if (strlen($search) > 0) { - $sql .= "where ("; - $sql .= " domain_name like '%".$search."%' "; - $sql .= " or domain_description like '%".$search."%' "; - $sql .= ") "; - } - $prep_statement = $db->prepare($sql); - if ($prep_statement) { - $prep_statement->execute(); - $row = $prep_statement->fetch(PDO::FETCH_ASSOC); - if ($row['num_rows'] > 0) { - $num_rows = $row['num_rows']; - } - else { - $num_rows = '0'; - } - } + $sql = "select count(*) from v_domains "; + $sql .= $sql_where; + $database = new database; + $num_rows = $database->select($sql, $parameters, 'column'); + unset($sql); //prepare to page the results $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; @@ -142,31 +138,20 @@ //get the domains $sql = "select * from v_domains "; - if (strlen($search) > 0) { - $search = strtolower($search); - $sql .= "where ("; - $sql .= " lower(domain_name) like '%".$search."%' "; - $sql .= " or lower(domain_description) like '%".$search."%' "; - $sql .= ") "; - } - if (strlen($order_by) == 0) { - $sql .= "order by domain_name asc "; - } - else { - $sql .= "order by ".$order_by." ".$order." "; - } - $sql .= " limit ".$rows_per_page." offset ".$offset." "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - unset ($prep_statement, $sql); - - foreach ($result as $domain) { - $domains[$domain['domain_uuid']]['name'] = $domain['domain_name']; - $domains[$domain['domain_uuid']]['parent_uuid'] = $domain['domain_parent_uuid']; - $domains[$domain['domain_uuid']]['enabled'] = $domain['domain_enabled']; - $domains[$domain['domain_uuid']]['description'] = $domain['domain_description']; + $sql .= $sql_where; + $sql .= order_by($order_by, $order); + $sql .= limit_offset($rows_per_page, $offset); + $database = new database; + $result = $database->select($sql, $parameters, 'all'); + if (is_array($result) && sizeof($result) != 0) { + foreach ($result as $domain) { + $domains[$domain['domain_uuid']]['name'] = $domain['domain_name']; + $domains[$domain['domain_uuid']]['parent_uuid'] = $domain['domain_parent_uuid']; + $domains[$domain['domain_uuid']]['enabled'] = $domain['domain_enabled']; + $domains[$domain['domain_uuid']]['description'] = $domain['domain_description']; + } } + unset($sql, $sql_where, $parameters, $result, $domain); $c = 0; $row_style["0"] = "row_style0"; @@ -202,7 +187,7 @@ echo "\n"; echo "\n"; - if (count($domains) > 0) { + if (is_array($domains) && sizeof($domains) != 0) { foreach ($domains as $domain_uuid => $domain) { $tr_link = (permission_exists('domain_edit')) ? "href='domain_edit.php?id=".escape($domain_uuid)."'" : null; echo "\n";