Domain Settings: Add ability to Copy to Default Settings.

This commit is contained in:
Nate 2019-10-16 22:16:52 -06:00
parent cebf510d0f
commit 5f4b55b88a
2 changed files with 194 additions and 77 deletions

View File

@ -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 " <option value='".escape($domain["domain_uuid"])."'>".escape($domain["domain_name"])."</option>\n";
}
if (permission_exists('default_setting_add') && permission_exists('default_setting_edit')) {
echo " <option value='' disabled='disabled'></option>\n";
echo " <option value='default'>".$text['label-default_settings']."</option>\n";
}
echo " </select>\n";
echo " <button type='submit' id='button_paste' name='action' class='btn btn-default' style='display: none;' alt='".$text['button-paste']."' value='copy'><span class='fas fa-paste'></span> ".$text['button-paste']."</button>";
}

View File

@ -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