From 5f4b55b88a8d2d1a5fcd232bf100b9e2ee7c832c Mon Sep 17 00:00:00 2001 From: Nate Date: Wed, 16 Oct 2019 22:16:52 -0600 Subject: [PATCH] Domain Settings: Add ability to Copy to Default Settings. --- core/domain_settings/domain_settings.php | 251 ++++++++++++++++------- core/domains/app_languages.php | 20 ++ 2 files changed, 194 insertions(+), 77 deletions(-) diff --git a/core/domain_settings/domain_settings.php b/core/domain_settings/domain_settings.php index e4b5355928..63901900c1 100644 --- a/core/domain_settings/domain_settings.php +++ b/core/domain_settings/domain_settings.php @@ -53,96 +53,189 @@ exit; } - //copy (to a different domain) + //copy settings if ($action == 'copy') { if (permission_exists('domain_select') && count($_SESSION['domains']) > 1) { $target_domain_uuid = $_POST["target_domain_uuid"]; - if (is_uuid($target_domain_uuid) && is_array($domain_setting_uuids) && @sizeof($domain_setting_uuids) > 0) { - $settings_copied = 0; - foreach ($domain_setting_uuids as $domain_setting_uuid) { + //to different domain + if (is_uuid($target_domain_uuid)) { - if (is_uuid($domain_setting_uuid)) { + if (is_array($domain_setting_uuids) && @sizeof($domain_setting_uuids) > 0) { + $settings_copied = 0; + foreach ($domain_setting_uuids as $domain_setting_uuid) { - //get domain 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_category = $row["domain_setting_category"]; - $domain_setting_subcategory = $row["domain_setting_subcategory"]; - $domain_setting_name = $row["domain_setting_name"]; - $domain_setting_value = $row["domain_setting_value"]; - $domain_setting_order = $row["domain_setting_order"]; - $domain_setting_enabled = $row["domain_setting_enabled"]; - $domain_setting_description = $row["domain_setting_description"]; - } - unset($sql, $parameters, $row); + if (is_uuid($domain_setting_uuid)) { + + //get domain 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_category = $row["domain_setting_category"]; + $domain_setting_subcategory = $row["domain_setting_subcategory"]; + $domain_setting_name = $row["domain_setting_name"]; + $domain_setting_value = $row["domain_setting_value"]; + $domain_setting_order = $row["domain_setting_order"]; + $domain_setting_enabled = $row["domain_setting_enabled"]; + $domain_setting_description = $row["domain_setting_description"]; + } + unset($sql, $parameters, $row); + + //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 = :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'); + + $action = is_uuid($target_domain_setting_uuid) ? 'update' : 'add'; + unset($sql, $parameters); + + // fix null + $domain_setting_order = $domain_setting_order != '' ? $domain_setting_order : null; + + //begin array + $array['domain_settings'][0]['domain_uuid'] = $target_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; + + //insert + if ($action == "add" && permission_exists("domain_setting_add")) { + $array['domain_settings'][0]['domain_setting_uuid'] = uuid(); + } + //update + if ($action == "update" && permission_exists('domain_setting_edit')) { + $array['domain_settings'][0]['domain_setting_uuid'] = $target_domain_setting_uuid; + } + + //execute + if (is_uuid($array['domain_settings'][0]['domain_setting_uuid'])) { + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); + + $settings_copied++; + } + + } - //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 = :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'); - - $action = is_uuid($target_domain_setting_uuid) ? 'update' : 'add'; - unset($sql, $parameters); - - // fix null - $default_setting_order = $default_setting_order != '' ? $default_setting_order : null; - - //begin array - $array['domain_settings'][0]['domain_uuid'] = $target_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; - - //insert - if ($action == "add" && permission_exists("domain_setting_add")) { - $array['domain_settings'][0]['domain_setting_uuid'] = uuid(); - } - //update - if ($action == "update" && permission_exists('domain_setting_edit')) { - $array['domain_settings'][0]['domain_setting_uuid'] = $target_domain_setting_uuid; - } - - //execute - if (is_uuid($array['domain_settings'][0]['domain_setting_uuid'])) { - $database = new database; - $database->app_name = 'domain_settings'; - $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; - $database->save($array); - unset($array); - - $settings_copied++; } + // set message + message::add($text['message-copy'].": ".escape($settings_copied)); } } - // set message - message::add($text['message-copy'].": ".escape($settings_copied)); - } + //to default settings + else if ($target_domain_uuid == 'default') { + + if (is_array($domain_setting_uuids) && @sizeof($domain_setting_uuids) > 0) { + $settings_copied = 0; + foreach ($domain_setting_uuids as $domain_setting_uuid) { + + if (is_uuid($domain_setting_uuid)) { + + //get domain 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_category = $row["domain_setting_category"]; + $domain_setting_subcategory = $row["domain_setting_subcategory"]; + $domain_setting_name = $row["domain_setting_name"]; + $domain_setting_value = $row["domain_setting_value"]; + $domain_setting_order = $row["domain_setting_order"]; + $domain_setting_enabled = $row["domain_setting_enabled"]; + $domain_setting_description = $row["domain_setting_description"]; + } + unset($sql, $parameters, $row); + + //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 default_setting_uuid from v_default_settings "; + $sql .= "where default_setting_category = :default_setting_category "; + $sql .= "and default_setting_subcategory = :default_setting_subcategory "; + $sql .= "and default_setting_name = :default_setting_name "; + $sql .= "and default_setting_name <> 'array' "; + $parameters['default_setting_category'] = $domain_setting_category; + $parameters['default_setting_subcategory'] = $domain_setting_subcategory; + $parameters['default_setting_name'] = $domain_setting_name; + $database = new database; + $target_default_setting_uuid = $database->select($sql, $parameters, 'column'); + + $action = is_uuid($target_default_setting_uuid) ? 'update' : 'add'; + unset($sql, $parameters); + + // fix null + $domain_setting_order = $domain_setting_order != '' ? $domain_setting_order : null; + + //begin array + $array['default_settings'][0]['default_setting_category'] = $domain_setting_category; + $array['default_settings'][0]['default_setting_subcategory'] = $domain_setting_subcategory; + $array['default_settings'][0]['default_setting_name'] = $domain_setting_name; + $array['default_settings'][0]['default_setting_value'] = $domain_setting_value; + $array['default_settings'][0]['default_setting_order'] = $domain_setting_order; + $array['default_settings'][0]['default_setting_enabled'] = $domain_setting_enabled; + $array['default_settings'][0]['default_setting_description'] = $domain_setting_description; + + //insert + if ($action == "add" && permission_exists("default_setting_add")) { + $array['default_settings'][0]['default_setting_uuid'] = uuid(); + } + //update + if ($action == "update" && permission_exists('default_setting_edit')) { + $array['default_settings'][0]['default_setting_uuid'] = $target_default_setting_uuid; + } + + //execute + if (is_uuid($array['default_settings'][0]['default_setting_uuid'])) { + $database = new database; + $database->app_name = 'domain_settings'; + $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $database->save($array); + unset($array); + + $settings_copied++; + } + + } + + } + + // set message + message::add($text['message-copy'].": ".escape($settings_copied)); + } + + } } header("Location: ".PROJECT_PATH."/core/domains/domain_edit.php?id=".escape($_REQUEST["domain_uuid"])); @@ -303,6 +396,10 @@ foreach ($_SESSION['domains'] as $domain) { echo " \n"; } + if (permission_exists('default_setting_add') && permission_exists('default_setting_edit')) { + echo " \n"; + echo " \n"; + } echo " \n"; echo " "; } diff --git a/core/domains/app_languages.php b/core/domains/app_languages.php index 6635ffd89f..7b844d61db 100644 --- a/core/domains/app_languages.php +++ b/core/domains/app_languages.php @@ -622,6 +622,26 @@ $text['label-12-hour']['ru-ru'] = "12-часовой"; $text['label-12-hour']['sv-se'] = "12-timmars"; $text['label-12-hour']['uk-ua'] = "12-годинний"; +$text['label-default_settings']['en-us'] = "Default Settings"; +$text['label-default_settings']['ar-eg'] = ""; +$text['label-default_settings']['de-at'] = "Standardeinstellungen"; //copied from de-de +$text['label-default_settings']['de-ch'] = "Standardeinstellungen"; //copied from de-de +$text['label-default_settings']['de-de'] = "Standardeinstellungen"; +$text['label-default_settings']['es-cl'] = "Condiciones Predeterminadas"; +$text['label-default_settings']['es-mx'] = "Condiciones Predeterminadas"; //copied from es-cl +$text['label-default_settings']['fr-ca'] = "Configurations par Défaut"; //copied from fr-fr +$text['label-default_settings']['fr-fr'] = "Configurations par Défaut"; +$text['label-default_settings']['he-il'] = ""; +$text['label-default_settings']['it-it'] = "Parametri di Default"; +$text['label-default_settings']['nl-nl'] = ""; +$text['label-default_settings']['pl-pl'] = "Ustawienia domyślne"; +$text['label-default_settings']['pt-br'] = "Configurações"; +$text['label-default_settings']['pt-pt'] = "Predefinições"; +$text['label-default_settings']['ro-ro'] = ""; +$text['label-default_settings']['ru-ru'] = "Настройки по умолчанию"; +$text['label-default_settings']['sv-se'] = "Standard Inställningar"; +$text['label-default_settings']['uk-ua'] = "Налаштування за замовчуванням"; + $text['header-settings']['en-us'] = "Settings"; $text['header-settings']['ar-eg'] = ""; $text['header-settings']['de-at'] = "Einstellungen"; //copied from de-de