From 4e825ff7dfd97a5cf3dc9e91b3e20507c9152562 Mon Sep 17 00:00:00 2001 From: Till Date: Fri, 9 Jun 2023 11:23:04 +0200 Subject: [PATCH] Fix issues in DNS wizard --- interface/lib/classes/dns_wizard.inc.php | 32 +++++++++++++++++------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/interface/lib/classes/dns_wizard.inc.php b/interface/lib/classes/dns_wizard.inc.php index 10c6eae473..9b81748d23 100644 --- a/interface/lib/classes/dns_wizard.inc.php +++ b/interface/lib/classes/dns_wizard.inc.php @@ -37,6 +37,11 @@ class dns_wizard global $app; $app->uses('getconf'); + // get system settings + $settings = $app->getconf->get_global_config(); + + $error = ''; + // get the correct server_id if (isset($data['server_id'])) { $server_id = $app->functions->intval($data['server_id']); @@ -45,13 +50,18 @@ class dns_wizard $server_id = $app->functions->intval($data['server_id_value']); $post_server_id = true; } else { - $settings = $app->getconf->get_global_config('dns'); - $server_id = $app->functions->intval($settings['default_dnsserver']); + $server_id = $app->functions->intval($settings['dns']['default_dnsserver']); + if(empty($server_id)) { + $tmp = $app->db->queryOneRecord('SELECT server_id FROM server WHERE dns_server = 1 LIMIT 0,1'); + if(!empty($tmp['server_id'])) { + $server_id = $tmp['server_id']; + } else { + $error .= $app->lng('error_no_server_id').'
'; + } + } $post_server_id = false; } - $error = ''; - if ($post_server_id) { $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); @@ -74,12 +84,16 @@ class dns_wizard // apply filters if(isset($data['domain']) && $data['domain'] != ''){ /* check if the domain module is used - and check if the selected domain can be used! */ - if ($domains_settings['use_domain_module'] == 'y') { + if ($settings['domains']['use_domain_module'] == 'y') { + // get domain_id for domain + $tmp = $app->db->queryOneRecord('SELECT domain_id from domain where domain = ?', $data['domain']); + $domain_id = $app->functions->intval( $tmp['domain_id']); + if ($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $data['client_group_id'] = $app->tools_sites->getClientIdForDomain($data['domain']); + $data['client_group_id'] = $app->tools_sites->getClientIdForDomain($domain_id); } - $domain_check = $app->tools_sites->checkDomainModuleDomain($data['domain']); - if(!$domain_check) { + $domain_check = $app->tools_sites->checkDomainModuleDomain($domain_id); + if($domain_check === false) { // invalid domain selected $data['domain'] = ''; } else { @@ -110,7 +124,7 @@ class dns_wizard if(isset($data['ip']) && $data['ip'] == '') $error .= $app->lng('error_ip_empty').'
'; - if(isset($data['ipv6']) && $data['ipv6'] == '') $error .= $app->lng('error_ipv6_empty').'
'; + //if(isset($data['ipv6']) && $data['ipv6'] == '') $error .= $app->lng('error_ipv6_empty').'
'; # fixme: this regex is pretty poor for hostname validation if(isset($data['ns1']) && $data['ns1'] == '') $error .= $app->lng('error_ns1_empty').'
'; -- GitLab