From 1a99a272b1bf63b178034275bf12d4dd45f0fb0c Mon Sep 17 00:00:00 2001 From: "Michael Kaufmann (d00p)" Date: Mon, 14 Oct 2013 09:50:55 +0200 Subject: [PATCH] let the admin set the server-alias completely (either wildcard, www. or none), customer option follows, this fixes #1147 Signed-off-by: Michael Kaufmann (d00p) --- admin_domains.php | 61 +++++++++++++++---- .../admin/domains/formfield.domains_add.php | 12 ++-- .../admin/domains/formfield.domains_edit.php | 12 ++-- lng/english.lng.php | 7 ++- lng/german.lng.php | 7 ++- 5 files changed, 72 insertions(+), 27 deletions(-) diff --git a/admin_domains.php b/admin_domains.php index e452762c..b79ad7ef 100644 --- a/admin_domains.php +++ b/admin_domains.php @@ -247,9 +247,9 @@ if($page == 'domains' if(isset($_POST['email_only'])) $email_only = intval($_POST['email_only']); - $wwwserveralias = 0; - if(isset($_POST['wwwserveralias'])) - $wwwserveralias = intval($_POST['wwwserveralias']); + $serveraliasoption = 0; + if(isset($_POST['selectserveralias'])) + $serveraliasoption = intval($_POST['selectserveralias']); $speciallogfile = 0; if(isset($_POST['speciallogfile'])) @@ -547,9 +547,8 @@ if($page == 'domains' $dkim = '0'; } - if($wwwserveralias != '1') - { - $wwwserveralias = '0'; + if ($serveraliasoption != '1' && $serveraliasoption != '2') { + $serveraliasoption = '0'; } if($caneditdomain != '1') @@ -605,7 +604,7 @@ if($page == 'domains' 'zonefile' => $zonefile, 'dkim' => $dkim, 'speciallogfile' => $speciallogfile, - 'wwwserveralias' => $wwwserveralias, + 'selectserveralias' => $serveraliasoption, 'ipandport' => serialize($ipandports), 'ssl_redirect' => $ssl_redirect, 'ssl_ipandport' => serialize($ssl_ipandports), @@ -639,6 +638,9 @@ if($page == 'domains' $question_nr++; } + $wwwserveralias = ($serveraliasoption == '1') ? '1' : '0'; + $iswildcarddomain = ($serveraliasoption == '0') ? '1' : '0'; + $db->query("INSERT INTO `" . TABLE_PANEL_DOMAINS . "` SET `domain` = '" . $db->escape($domain) . "', `customerid` = '" . (int)$customerid . "', @@ -648,6 +650,7 @@ if($page == 'domains' `zonefile` = '" . $db->escape($zonefile) . "', `dkim` = '" . $db->escape($dkim) . "', `wwwserveralias` = '" . $db->escape($wwwserveralias) . "', + `iswildcarddomain` = '" . $db->escape($iswildcarddomain) . "', `isbinddomain` = '" . $db->escape($isbinddomain) . "', `isemaildomain` = '" . $db->escape($isemaildomain) . "', `email_only` = '" . $db->escape($email_only) . "', @@ -791,6 +794,12 @@ if($page == 'domains' } } + // create serveralias options + $serveraliasoptions = ""; + $serveraliasoptions .= makeoption($lng['domains']['serveraliasoption_wildcard'], '0', '0', true, true); + $serveraliasoptions .= makeoption($lng['domains']['serveraliasoption_www'], '1', '0', true, true); + $serveraliasoptions .= makeoption($lng['domains']['serveraliasoption_none'], '2', '0', true, true); + $subcanemaildomain = makeoption($lng['admin']['subcanemaildomain']['never'], '0', '0', true, true) . makeoption($lng['admin']['subcanemaildomain']['choosableno'], '1', '0', true, true) . makeoption($lng['admin']['subcanemaildomain']['choosableyes'], '2', '0', true, true) . makeoption($lng['admin']['subcanemaildomain']['always'], '3', '0', true, true); $add_date = date('Y-m-d'); @@ -909,9 +918,15 @@ if($page == 'domains' if(isset($_POST['email_only'])) $email_only = intval($_POST['email_only']); - $wwwserveralias = 0; - if(isset($_POST['wwwserveralias'])) - $wwwserveralias = intval($_POST['wwwserveralias']); + $serveraliasoption = '2'; + if ($result['iswildcarddomain'] == '1') { + $serveraliasoption = '0'; + } elseif ($result['wwwserveralias'] == '1') { + $serveraliasoption = '1'; + } + if (isset($_POST['selectserveralias'])) { + $serveraliasoption = intval($_POST['selectserveralias']); + } $speciallogfile = 0; if(isset($_POST['speciallogfile'])) @@ -1154,6 +1169,10 @@ if($page == 'domains' $issubof = '0'; } + if ($serveraliasoption != '1' && $serveraliasoption != '2') { + $serveraliasoption = '0'; + } + $params = array( 'id' => $id, 'page' => $page, @@ -1169,7 +1188,7 @@ if($page == 'domains' 'caneditdomain' => $caneditdomain, 'zonefile' => $zonefile, 'dkim' => $dkim, - 'wwwserveralias' => $wwwserveralias, + 'selectserveralias' => $serveraliasoption, 'ssl_redirect' => $ssl_redirect, 'openbasedir' => $openbasedir, 'phpsettingid' => $phpsettingid, @@ -1203,9 +1222,13 @@ if($page == 'domains' } } + $wwwserveralias = ($serveraliasoption == '1') ? '1' : '0'; + $iswildcarddomain = ($serveraliasoption == '0') ? '1' : '0'; + if($documentroot != $result['documentroot'] || $ssl_redirect != $result['ssl_redirect'] || $wwwserveralias != $result['wwwserveralias'] + || $iswildcarddomain != $result['iswildcarddomain'] || $openbasedir != $result['openbasedir'] || $phpsettingid != $result['phpsettingid'] || $mod_fcgid_starter != $result['mod_fcgid_starter'] @@ -1279,6 +1302,9 @@ if($page == 'domains' $log->logAction(ADM_ACTION, LOG_INFO, "removed specialsettings on all subdomains of domain #" . $id); } + $wwwserveralias = ($serveraliasoption == '1') ? '1' : '0'; + $iswildcarddomain = ($serveraliasoption == '0') ? '1' : '0'; + $result = $db->query("UPDATE `" . TABLE_PANEL_DOMAINS . "` SET `customerid` = '" . (int)$customerid . "', `adminid` = '" . (int)$adminid . "', @@ -1293,6 +1319,7 @@ if($page == 'domains' `caneditdomain`='" . $db->escape($caneditdomain) . "', `zonefile`='" . $db->escape($zonefile) . "', `wwwserveralias`='" . $db->escape($wwwserveralias) . "', + `iswildcarddomain`='" . $db->escape($iswildcarddomain) . "', `openbasedir`='" . $db->escape($openbasedir) . "', `speciallogfile`='" . $db->escape($speciallogfile) . "', `phpsettingid`='" . $db->escape($phpsettingid) . "', @@ -1453,6 +1480,18 @@ if($page == 'domains' $result['specialsettings'] = $result['specialsettings']; + // create serveralias options + $serveraliasoptions = ""; + $values = array('0' => '0', '1' => '0', '2' => '1'); + if ($result['iswildcarddomain'] == '1') { + $values = array('0' => '1', '1' => '0', '2' => '0'); + } elseif ($result['wwwserveralias'] == '1') { + $values = array('0' => '0', '1' => '1', '2' => '0'); + } + $serveraliasoptions .= makeoption($lng['domains']['serveraliasoption_wildcard'], '0', $values['0'], true, true); + $serveraliasoptions .= makeoption($lng['domains']['serveraliasoption_www'], '1', $values['1'], true, true); + $serveraliasoptions .= makeoption($lng['domains']['serveraliasoption_none'], '2', $values['2'], true, true); + $subcanemaildomain = makeoption($lng['admin']['subcanemaildomain']['never'], '0', $result['subcanemaildomain'], true, true); $subcanemaildomain.= makeoption($lng['admin']['subcanemaildomain']['choosableno'], '1', $result['subcanemaildomain'], true, true); $subcanemaildomain.= makeoption($lng['admin']['subcanemaildomain']['choosableyes'], '2', $result['subcanemaildomain'], true, true); diff --git a/lib/formfields/admin/domains/formfield.domains_add.php b/lib/formfields/admin/domains/formfield.domains_add.php index d8dc5418..512681b1 100644 --- a/lib/formfields/admin/domains/formfield.domains_add.php +++ b/lib/formfields/admin/domains/formfield.domains_add.php @@ -119,13 +119,11 @@ return array( 'type' => 'label', 'value' => $lng['panel']['nosslipsavailable'] ), - 'wwwserveralias' => array( - 'label' => $lng['admin']['wwwserveralias'], - 'type' => 'checkbox', - 'values' => array( - array ('label' => $lng['panel']['yes'], 'value' => '1') - ), - 'value' => array('1') + 'selectserveralias' => array( + 'label' => $lng['admin']['selectserveralias'], + 'desc' => $lng['admin']['selectserveralias_desc'], + 'type' => 'select', + 'select_var' => $serveraliasoptions ), 'speciallogfile' => array( 'label' => $lng['admin']['speciallogfile']['title'], diff --git a/lib/formfields/admin/domains/formfield.domains_edit.php b/lib/formfields/admin/domains/formfield.domains_edit.php index 938d8654..cc4cb4d5 100644 --- a/lib/formfields/admin/domains/formfield.domains_edit.php +++ b/lib/formfields/admin/domains/formfield.domains_edit.php @@ -130,13 +130,11 @@ return array( 'type' => 'label', 'value' => $lng['panel']['nosslipsavailable'] ), - 'wwwserveralias' => array( - 'label' => $lng['admin']['wwwserveralias'], - 'type' => 'checkbox', - 'values' => array( - array ('label' => $lng['panel']['yes'], 'value' => '1') - ), - 'value' => array($result['wwwserveralias']) + 'selectserveralias' => array( + 'label' => $lng['admin']['selectserveralias'], + 'desc' => $lng['admin']['selectserveralias_desc'], + 'type' => 'select', + 'select_var' => $serveraliasoptions ), 'speciallogfile' => array( 'label' => $lng['admin']['speciallogfile']['title'], diff --git a/lng/english.lng.php b/lng/english.lng.php index 758baaef..244de80a 100644 --- a/lng/english.lng.php +++ b/lng/english.lng.php @@ -1958,7 +1958,7 @@ $lng['serversettings']['customerssl_directory']['description'] = 'Where should c $lng['admin']['note'] = 'Please note'; $lng['admin']['phpfpm.ininote'] = 'Not all values you may want to define can be used in the php-fpm pool configuration'; -// Added in Froxlor 0.9.29.1-dev +// Added in Froxlor 0.9.30 $lng['crondesc']['cron_mailboxsize'] = 'Calculating of mailbox-sizes'; $lng['domains']['ipandport_multi']['title'] = 'IP address(es)'; $lng['domains']['ipandport_multi']['description'] = 'Specify one or more IP address for the domain.

NOTE: IP addresses cannot be changed when the domain is configured as alias-domain of another domain.
'; @@ -1966,3 +1966,8 @@ $lng['domains']['ipandport_ssl_multi']['title'] = 'SSL IP address(es)'; $lng['domains']['ssl_redirect']['title'] = 'SSL redirect'; $lng['domains']['ssl_redirect']['description'] = 'This option creates redirects for non-ssl vhosts so that all requests are redirected to the SSL-vhost.

e.g. a request to http://domain.tld/ will redirect you to https://domain.tld/'; $lng['admin']['phpinfo'] = 'PHPinfo()'; +$lng['admin']['selectserveralias'] = 'ServerAlias value for the domain'; +$lng['admin']['selectserveralias_desc'] = 'Chose whether froxlor should create a wildcard-entry (*.domain.tld), a WWW-alias (www.domain.tld) or no alias at all'; +$lng['domains']['serveraliasoption_wildcard'] = 'Wildcard (*.domain.tld)'; +$lng['domains']['serveraliasoption_www'] = 'WWW (www.domain.tld)'; +$lng['domains']['serveraliasoption_none'] = 'No alias'; diff --git a/lng/german.lng.php b/lng/german.lng.php index 43796206..75b9fa55 100644 --- a/lng/german.lng.php +++ b/lng/german.lng.php @@ -1679,10 +1679,15 @@ $lng['serversettings']['customerssl_directory']['description'] = 'Wo sollen kund $lng['admin']['note'] = 'Bitte beachten'; $lng['admin']['phpfpm.ininote'] = 'Nicht alle gewünschten Werte können in der php-fpm pool Konfiguration verwendet werden'; -// Added in Froxlor 0.9.29.1-dev +// Added in Froxlor 0.9.30 $lng['crondesc']['cron_mailboxsize'] = 'Berechnung der Mailbox-Größen'; $lng['domains']['ipandport_multi']['title'] = 'IP Adresse(n)'; $lng['domains']['ipandport_multi']['description'] = 'Definiere eine oder mehrere IP Adresse(n) für diese Domain.

Hinweis: Die IP Adressen können nicht geändert werden, sollte die Domain als Alias-Domain für eine andere Domain konfiguriert worden sein.
'; $lng['domains']['ipandport_ssl_multi']['title'] = 'SSL IP Adresse(n)'; $lng['domains']['ssl_redirect']['title'] = 'SSL Weiterleitung'; $lng['domains']['ssl_redirect']['description'] = 'Diese Option erstellt für alle nicht-ssl vhosts eine Weiterleitung (Redirect), so dass alle Anfragen an den SSL-vhost übermittelt werden.

z.B. eine Anfrage an http://domain.tld/ würde weiterleiten zu https://domain.tld/'; +$lng['admin']['selectserveralias'] = 'ServerAlias Angabe für die Domain'; +$lng['admin']['selectserveralias_desc'] = 'Wählen Sie hier, ob für diese Domain ein Wildcard-Eintrag (*.domain.tld), ein WWW-Alias (www.domain.tld) oder gar kein Alias angelegt werden soll.'; +$lng['domains']['serveraliasoption_wildcard'] = 'Wildcard (*.domain.tld)'; +$lng['domains']['serveraliasoption_www'] = 'WWW (www.domain.tld)'; +$lng['domains']['serveraliasoption_none'] = 'Kein alias';