From 9ec3045a846c5e46e5e1be87272449876b21ed1f Mon Sep 17 00:00:00 2001 From: Sergio Cambra <sergio@programatica.es> Date: Tue, 8 Jul 2014 11:09:31 +0200 Subject: [PATCH] hide used domains from domain select, except for subdomain forms --- interface/lib/classes/tools_sites.inc.php | 12 +++++++++++- interface/web/dns/dns_import.php | 2 +- interface/web/dns/dns_slave_edit.php | 2 +- interface/web/dns/dns_soa_edit.php | 2 +- interface/web/dns/dns_wizard.php | 2 +- interface/web/mail/mail_domain_edit.php | 2 +- interface/web/sites/web_childdomain_edit.php | 2 +- interface/web/sites/web_vhost_domain_edit.php | 2 +- 8 files changed, 18 insertions(+), 8 deletions(-) diff --git a/interface/lib/classes/tools_sites.inc.php b/interface/lib/classes/tools_sites.inc.php index c636bbc610..3702df2dcb 100644 --- a/interface/lib/classes/tools_sites.inc.php +++ b/interface/lib/classes/tools_sites.inc.php @@ -144,10 +144,20 @@ class tools_sites { return $res; } - function getDomainModuleDomains() { + function getDomainModuleDomains($not_used_in_table = null, $selected_domain = null) { global $app; $sql = "SELECT domain_id, domain FROM domain WHERE"; + if ($not_used_in_table) { + if (strpos($not_used_in_table, 'dns') !== false) { + $field = "origin"; + $select = "SUBSTRING($field, 1, CHAR_LENGTH($field) - 1)"; + } else { + $field = "domain"; + $select = $field; + } + $sql .= " domain NOT IN (SELECT $select FROM $not_used_in_table WHERE $field != '$selected_domain') AND"; + } if ($_SESSION["s"]["user"]["typ"] == 'admin') { $sql .= " 1"; } else { diff --git a/interface/web/dns/dns_import.php b/interface/web/dns/dns_import.php index b213110639..a391c2e594 100644 --- a/interface/web/dns/dns_import.php +++ b/interface/web/dns/dns_import.php @@ -161,7 +161,7 @@ if ($settings['use_domain_module'] == 'y') { /* * The domain-module is in use. */ - $domains = $app->tools_sites->getDomainModuleDomains(); + $domains = $app->tools_sites->getDomainModuleDomains("dns_soa"); /* * We can leave domain empty if domain is filename */ diff --git a/interface/web/dns/dns_slave_edit.php b/interface/web/dns/dns_slave_edit.php index ff06821ce0..eb25f2245c 100644 --- a/interface/web/dns/dns_slave_edit.php +++ b/interface/web/dns/dns_slave_edit.php @@ -116,7 +116,7 @@ class page_action extends tform_actions { /* * The domain-module is in use. */ - $domains = $app->tools_sites->getDomainModuleDomains(); + $domains = $app->tools_sites->getDomainModuleDomains("dns_slave", $this->dataRecord["origin"]); $domain_select = ''; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ diff --git a/interface/web/dns/dns_soa_edit.php b/interface/web/dns/dns_soa_edit.php index 3352885fb7..2fcb9f9f8d 100644 --- a/interface/web/dns/dns_soa_edit.php +++ b/interface/web/dns/dns_soa_edit.php @@ -157,7 +157,7 @@ class page_action extends tform_actions { /* * The domain-module is in use. */ - $domains = $app->tools_sites->getDomainModuleDomains(); + $domains = $app->tools_sites->getDomainModuleDomains("dns_soa", $this->dataRecord["origin"]); $domain_select = ''; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ diff --git a/interface/web/dns/dns_wizard.php b/interface/web/dns/dns_wizard.php index a462d0f2cc..8549a6bb14 100644 --- a/interface/web/dns/dns_wizard.php +++ b/interface/web/dns/dns_wizard.php @@ -167,7 +167,7 @@ if ($settings['use_domain_module'] == 'y') { /* * The domain-module is in use. */ - $domains = $app->tools_sites->getDomainModuleDomains(); + $domains = $app->tools_sites->getDomainModuleDomains("dns_soa"); $domain_select = ''; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php index 8220c2ce86..6f48c7f29f 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -150,7 +150,7 @@ class page_action extends tform_actions { /* * The domain-module is in use. */ - $domains = $app->tools_sites->getDomainModuleDomains(); + $domains = $app->tools_sites->getDomainModuleDomains("mail_domain", $this->dataRecord["domain"]); $domain_select = ''; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ diff --git a/interface/web/sites/web_childdomain_edit.php b/interface/web/sites/web_childdomain_edit.php index 435b9018c0..8cdda48069 100644 --- a/interface/web/sites/web_childdomain_edit.php +++ b/interface/web/sites/web_childdomain_edit.php @@ -105,7 +105,7 @@ class page_action extends tform_actions { /* * The domain-module is in use. */ - $domains = $app->tools_sites->getDomainModuleDomains(); + $domains = $app->tools_sites->getDomainModuleDomains($this->_vhostdomain_type == 'subdomain' ? null : "web_domain", $this->dataRecord["domain"]); $domain_select = ''; $selected_domain = ''; if(is_array($domains) && sizeof($domains) > 0) { diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php index de731bd644..00b498568f 100644 --- a/interface/web/sites/web_vhost_domain_edit.php +++ b/interface/web/sites/web_vhost_domain_edit.php @@ -631,7 +631,7 @@ class page_action extends tform_actions { /* * The domain-module is in use. */ - $domains = $app->tools_sites->getDomainModuleDomains(); + $domains = $app->tools_sites->getDomainModuleDomains($this->_vhostdomain_type == 'subdomain' ? null : "web_domain", $this->dataRecord["domain"]); $domain_select = ''; $selected_domain = ''; if(is_array($domains) && sizeof($domains) > 0) { -- GitLab