Portions created by the Initial Developer are Copyright (C) 2008-2019 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes require_once "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; //check prmissions if (permission_exists('domain_setting_view')) { //access granted } else { echo "access denied"; exit; } //get posted values, if any if (is_array($_REQUEST) && @sizeof($_REQUEST) > 1) { //get the variables $action = $_REQUEST["action"]; $domain_uuid = $_REQUEST["domain_uuid"]; $domain_setting_uuids = $_REQUEST["id"]; $enabled = $_REQUEST['enabled']; //validate the token $token = new token; if (!$token->validate(PROJECT_PATH."/core/domains/domain_edit.php")) { message::add($text['message-invalid_token'],'negative'); header("Location: ".PROJECT_PATH."/core/domains/domains.php"); exit; } //copy settings if ($action == 'copy') { if (permission_exists('domain_select') && count($_SESSION['domains']) > 1) { $target_domain_uuid = $_POST["target_domain_uuid"]; //to different domain if (is_uuid($target_domain_uuid)) { 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 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 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"])); exit; } //toggle $toggled = 0; if ($action == 'toggle') { if (is_array($domain_setting_uuids) && sizeof($domain_setting_uuids) > 0) { foreach ($domain_setting_uuids as $domain_setting_uuid) { if (is_uuid($domain_setting_uuid)) { //get current status $sql = "select domain_setting_enabled from v_domain_settings where domain_setting_uuid = :domain_setting_uuid "; $parameters['domain_setting_uuid'] = $domain_setting_uuid; $database = new database; $domain_setting_enabled = $database->select($sql, $parameters, 'column'); $new_status = $domain_setting_enabled == 'true' ? 'false' : 'true'; unset($sql, $parameters); //set new status $array['domain_settings'][0]['domain_setting_uuid'] = $domain_setting_uuid; $array['domain_settings'][0]['domain_setting_enabled'] = $new_status; $database = new database; $database->app_name = 'domain_settings'; $database->app_uuid = '2c2453c0-1bea-4475-9f44-4d969650de09'; $database->save($array); $message = $database->message; unset($array); //increment toggle total $toggled++; } } if ($toggled > 0) { message::add($text['message-toggle'].': '.$toggled); } } header("Location: ".PROJECT_PATH."/core/domains/domain_edit.php?id=".escape($_REQUEST["domain_uuid"])); exit; } //delete if ($action == 'delete') { if (permission_exists('domain_setting_delete')) { //add multi-lingual support $language = new text; $text = $language->get(); 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); } } } header("Location: ".PROJECT_PATH."/core/domains/domain_edit.php?id=".escape($_REQUEST["domain_uuid"])); exit; } } //include the paging require_once "resources/paging.php"; //get the variables $order_by = $_GET["order_by"]; $order = $_GET["order"]; //prepare to page the results $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; $param = ""; $page = $_GET['page']; if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; } list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page); $offset = $rows_per_page * $page; //get the list $sql = "select * from v_domain_settings "; $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 .= limit_offset($rows_per_page, $offset); $database = new database; $result = $database->select($sql, $parameters, 'all'); unset($sql, $parameters); $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; //copy settings javascript if ( permission_exists("domain_select") && permission_exists("domain_setting_add") && is_array($_SESSION['domains']) && @sizeof($_SESSION['domains']) > 1 ) { echo ""; } //show the content echo "
\n"; echo "\n"; echo "\n"; echo "
\n"; if (permission_exists('domain_setting_add')) { echo " "; } if (is_array($result) && @sizeof($result) != 0) { if (permission_exists("domain_select") && permission_exists("domain_setting_add") && count($_SESSION['domains']) > 1) { echo " "; echo " "; echo " \n"; echo " "; } if (permission_exists('default_setting_edit')) { echo " "; } if (permission_exists('default_setting_delete')) { echo " "; } } echo "
\n"; echo "".$text['header-domain_settings'].""; echo "

\n"; echo "\n"; if (is_array($result) && @sizeof($result) != 0) { $previous_category = ''; foreach($result as $row) { if ($previous_category != $row['domain_setting_category']) { $c = 0; echo "\n"; echo " \n"; echo "\n"; echo "\n"; if ((permission_exists("domain_select") && permission_exists("domain_setting_add") && count($_SESSION['domains']) > 1) || permission_exists('domain_setting_delete')) { echo ""; } echo ""; echo ""; echo ""; echo ""; echo ""; echo " \n"; echo "\n"; } $tr_link = (permission_exists('domain_setting_edit')) ? " href='".PROJECT_PATH."/core/domain_settings/domain_setting_edit.php?domain_uuid=".escape($row['domain_uuid'])."&id=".escape($row['domain_setting_uuid'])."'" : null; echo "\n"; if ((permission_exists("domain_select") && permission_exists("domain_setting_add") && count($_SESSION['domains']) > 1) || permission_exists("domain_setting_delete")) { echo " \n"; $subcat_ids[strtolower($row['domain_setting_category'])][] = 'checkbox_'.escape($row['domain_setting_uuid']); } echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "\n"; $previous_category = $row['domain_setting_category']; $c = $c ? 0 : 1; } unset($sql, $result, $row_count); } echo "\n"; echo "
".$text['label-subcategory']."".$text['label-type']."".$text['label-value']."".$text['label-enabled']."".$text['label-description']."
"; if (permission_exists('domain_setting_edit')) { echo "".escape($row['domain_setting_subcategory']).""; } else { echo $row['domain_setting_subcategory']; } echo " ".escape($row['domain_setting_name'])." \n"; $category = $row['domain_setting_category']; $subcategory = $row['domain_setting_subcategory']; $name = $row['domain_setting_name']; if ($category == "domain" && $subcategory == "menu" && $name == "uuid" ) { $sql = "select * from v_menus "; $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']); } else if ($category == "domain" && $subcategory == "time_format" && $name == "text" ) { switch ($row['domain_setting_value']) { case '12h': echo $text['label-12-hour']; break; case '24h': echo $text['label-24-hour']; break; } } else if ( ( $category == "theme" && $subcategory == "menu_main_icons" && $name == "boolean" ) || ( $category == "theme" && $subcategory == "menu_sub_icons" && $name == "boolean" ) || ( $category == "theme" && $subcategory == "menu_brand_type" && $name == "text" ) || ( $category == "theme" && $subcategory == "menu_style" && $name == "text" ) || ( $category == "theme" && $subcategory == "menu_position" && $name == "text" ) || ( $category == "theme" && $subcategory == "logo_align" && $name == "text" ) ) { echo " ".$text['label-'.escape($row['domain_setting_value'])]; } else if ($subcategory == 'password' || substr_count($subcategory, '_password') > 0 || $category == "login" && $subcategory == "password_reset_key" && $name == "text") { echo " ".str_repeat('*', strlen(escape($row['domain_setting_value']))); } else if ($category == 'theme' && $subcategory == 'button_icons' && $name == 'text') { echo " ".$text['option-button_icons_'.$row['domain_setting_value']]."\n"; } else if ($category == "theme" && substr_count($subcategory, "_color") > 0 && ($name == "text" || $name == 'array')) { echo " ".(img_spacer('15px', '15px', 'background: '.escape($row['domain_setting_value']).'; margin-right: 4px; vertical-align: middle; border: 1px solid '.(color_adjust($row['domain_setting_value'], -0.18)).'; padding: -1px;')); echo "".escape($row['domain_setting_value'])."\n"; } else if ($category == 'recordings' && $subcategory == 'storage_type' && $name == 'text') { echo " ".$text['label-'.$row['domain_setting_value']]."\n"; } else { echo " ".escape($row['domain_setting_value'])."\n"; } echo " ".escape($row['domain_setting_description'])." 
"; echo "
".$paging_controls."
"; echo "
"; echo "

"; // check or uncheck all category checkboxes if (isset($subcat_ids) && sizeof($subcat_ids) > 0) { echo "\n"; } //handle form actions echo "\n"; ?>