diff --git a/lib/Froxlor/Api/Commands/DomainZones.php b/lib/Froxlor/Api/Commands/DomainZones.php index f643306a..1d8af83e 100644 --- a/lib/Froxlor/Api/Commands/DomainZones.php +++ b/lib/Froxlor/Api/Commands/DomainZones.php @@ -170,6 +170,10 @@ class DomainZones extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resour break; } } + // check www-alias setting + if ($result['wwwserveralias'] == '1' && $result['iswildcarddomain'] == '0' && $record == 'www') { + $errors[] = $this->lng['error']['no_wwwcnamae_ifwwwalias']; + } } // append trailing dot (again) $content .= '.'; diff --git a/lng/english.lng.php b/lng/english.lng.php index 64e4e04c..f0ae7f59 100644 --- a/lng/english.lng.php +++ b/lng/english.lng.php @@ -2099,3 +2099,4 @@ $lng['serversettings']['phpfpm_settings']['custom_config']['description'] = 'Add $lng['serversettings']['awstats']['logformat']['title'] = 'LogFormat setting'; $lng['serversettings']['awstats']['logformat']['description'] = 'If you use customized logformat for your webserver, you need change the awstats LogFormat too.
Default is 1. For more information check documentation here.'; $lng['error']['cannotdeletesuperadmin'] = 'The first admin cannot be deleted.'; +$lng['error']['no_wwwcnamae_ifwwwalias'] = 'Cannot set CNAME record for "www" as domain is set to generate a www-alias. Please change settings to either "No alias" or "Wildcard alias"'; diff --git a/lng/german.lng.php b/lng/german.lng.php index 350cde08..22d4e725 100644 --- a/lng/german.lng.php +++ b/lng/german.lng.php @@ -1746,3 +1746,4 @@ $lng['serversettings']['phpfpm_settings']['custom_config']['description'] = 'Fü $lng['serversettings']['awstats']['logformat']['title'] = 'LogFormat Einstellung'; $lng['serversettings']['awstats']['logformat']['description'] = 'Wenn ein benutzerdefiniertes LogFormat beim Webserver verwendet wird, muss LogFormat von awstats ebenso angepasst werden.
Standard ist 1. Für weitere Informationen siehe Dokumentation unter hier.'; $lng['error']['cannotdeletesuperadmin'] = 'Der erste Administrator kann nicht gelöscht werden.'; +$lng['error']['no_wwwcnamae_ifwwwalias'] = 'Es kann kein CNAME Eintrag für "www" angelegt werden, da die Domain einen www-Alias aktiviert hat. Ändere diese Einstellung auf "Kein Alias" oder "Wildcard Alias"'; diff --git a/tests/DomainZones/DomainZonesTest.php b/tests/DomainZones/DomainZonesTest.php index 155b217c..21414c7f 100644 --- a/tests/DomainZones/DomainZonesTest.php +++ b/tests/DomainZones/DomainZonesTest.php @@ -4,6 +4,7 @@ use PHPUnit\Framework\TestCase; use Froxlor\Settings; use Froxlor\Api\Commands\Customers; use Froxlor\Api\Commands\DomainZones; +use Froxlor\Api\Commands\Domains; /** * @@ -719,6 +720,31 @@ class DomainZonesTest extends TestCase DomainZones::getLocal($admin_userdata, $data)->add(); } + /** + * + * @depends testAdminDomainZonesAddCname + */ + public function testAdminDomainZonesAddCnameInvalidWwwAlias() + { + global $admin_userdata; + + // set domain to www-alias + $data = [ + 'domainname' => 'test2.local', + 'selectserveralias' => '1' + ]; + Domains::getLocal($admin_userdata, $data)->update(); + + $data = [ + 'domainname' => 'test2.local', + 'record' => 'www', + 'type' => 'CNAME', + 'content' => 'testing.local' + ]; + $this->expectExceptionMessage('Cannot set CNAME record for "www" as domain is set to generate a www-alias. Please change settings to either "No alias" or "Wildcard alias"'); + DomainZones::getLocal($admin_userdata, $data)->add(); + } + /** * * @depends testAdminDomainZonesAddCname