correct handling of storeSettingHostname when system.stdsubdomain is changed; refs #633
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
@@ -458,6 +458,10 @@ if ($page == 'overview') {
|
||||
}
|
||||
}
|
||||
|
||||
$alias_stmt = Database::prepare("SELECT COUNT(`id`) AS count FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `aliasdomain`= :aliasdomain");
|
||||
$alias_check = Database::pexecute_first($alias_stmt, array("aliasdomain" => $result['id']));
|
||||
$alias_check = $alias_check['count'];
|
||||
|
||||
$domainip = $result_ipandport['ip'];
|
||||
$result = \Froxlor\PhpHelper::htmlentitiesArray($result);
|
||||
|
||||
|
||||
@@ -221,10 +221,29 @@ class Store
|
||||
{
|
||||
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
|
||||
|
||||
if ($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'system' && isset($fielddata['varname']) && $fielddata['varname'] == 'hostname') {
|
||||
if ($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'system' && isset($fielddata['varname']) && ($fielddata['varname'] == 'hostname' || $fielddata['varname'] == 'stdsubdomain')) {
|
||||
$idna_convert = new \Froxlor\Idna\IdnaWrapper();
|
||||
$newfieldvalue = $idna_convert->encode($newfieldvalue);
|
||||
|
||||
if (($fielddata['varname'] == 'hostname' && Settings::Get('system.stdsubdomain') == '') || $fielddata['varname'] == 'stdsubdomain')
|
||||
{
|
||||
if ($fielddata['varname'] == 'stdsubdomain' && $newfieldvalue == '') {
|
||||
// clear field, reset stdsubdomain to system-hostname
|
||||
$oldhost = Settings::Get('system.stdsubdomain');
|
||||
$newhost = Settings::Get('system.hostname');
|
||||
} elseif ($fielddata['varname'] == 'stdsubdomain' && Settings::Get('system.stdsubdomain') == '') {
|
||||
// former std-subdomain was system-hostname
|
||||
$oldhost = Settings::Get('system.hostname');
|
||||
$newhost = Settings::Get('system.stdsubdomain');
|
||||
} elseif ($fielddata['varname'] == 'stdsubdomain') {
|
||||
// std-subdomain just changed
|
||||
$oldhost = Settings::Get('system.stdsubdomain');
|
||||
$newhost = $newfieldvalue;
|
||||
} elseif ($fielddata['varname'] == 'hostname' && Settings::Get('system.stdsubdomain') == '') {
|
||||
$oldhost = Settings::Get('system.hostname');
|
||||
$newhost = $newfieldvalue;
|
||||
}
|
||||
|
||||
$customerstddomains_result_stmt = Database::prepare("
|
||||
SELECT `standardsubdomain` FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `standardsubdomain` <> '0'
|
||||
");
|
||||
@@ -243,11 +262,12 @@ class Store
|
||||
WHERE `id` IN ('" . implode(', ', $ids) . "')
|
||||
");
|
||||
Database::pexecute($upd_stmt, array(
|
||||
'host' => Settings::Get('system.hostname'),
|
||||
'newval' => $newfieldvalue
|
||||
'host' => $oldhost,
|
||||
'newval' => $newhost
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $returnvalue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user