diff --git a/admin_configfiles.php b/admin_configfiles.php index 35c43975..2de1a5fd 100644 --- a/admin_configfiles.php +++ b/admin_configfiles.php @@ -94,7 +94,7 @@ if ($userinfo['change_serversettings'] == '1') { } if ($distribution != "" && isset($_POST['finish'])) { - $valid_keys = ['http', 'dns', 'smtp', 'mail', 'ftp', 'system', 'distro']; + $valid_keys = ['http', 'dns', 'smtp', 'mail', 'antispam', 'ftp', 'system', 'distro']; unset($_POST['finish']); unset($_POST['csrf_token']); $params = $_POST; diff --git a/install/updates/froxlor/update_2.2.inc.php b/install/updates/froxlor/update_2.2.inc.php index a22ac732..bdcbd274 100644 --- a/install/updates/froxlor/update_2.2.inc.php +++ b/install/updates/froxlor/update_2.2.inc.php @@ -24,7 +24,6 @@ */ use Froxlor\Database\Database; -use Froxlor\FileDir; use Froxlor\Froxlor; use Froxlor\Install\Update; use Froxlor\Settings; @@ -36,7 +35,7 @@ if (!defined('_CRON_UPDATE')) { } } -if (Froxlor::isFroxlorVersion('2.1.x')) { +if (Froxlor::isFroxlorVersion('2.1.4')) { Update::showUpdateStep("Enhancing virtual email table"); Database::query("ALTER TABLE `" . TABLE_MAIL_VIRTUAL . "` ADD `spam_tag_level` float(4,1) NOT NULL DEFAULT 7.0;"); Database::query("ALTER TABLE `" . TABLE_MAIL_VIRTUAL . "` ADD `spam_kill_level` float(4,1) NOT NULL DEFAULT 14.0;"); @@ -45,8 +44,9 @@ if (Froxlor::isFroxlorVersion('2.1.x')) { Update::lastStepStatus(0); Update::showUpdateStep("Adjusting settings"); - Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `settinggroup` = 'antispam', `varname` = 'activated' WHERE `settinggroup` = 'dkim' AND `varname` = 'use_dkim';"); - Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `settinggroup` = 'antispam', `varname` = 'reload_command' WHERE `settinggroup` = 'dkim' AND `varname` = 'dkimrestart_command';"); + $antispam_activated = $_POST['antispam_activated'] ?? 0; + Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `settinggroup` = 'antispam', `varname` = 'activated', `value` = '" . (int)$antispam_activated . "' WHERE `settinggroup` = 'dkim' AND `varname` = 'use_dkim';"); + Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `settinggroup` = 'antispam', `varname` = 'reload_command', `value` = 'service rspamd restart' WHERE `settinggroup` = 'dkim' AND `varname` = 'dkimrestart_command';"); Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `settinggroup` = 'antispam', `varname` = 'config_file', `value` = '/etc/rspamd/local.d/froxlor_settings.conf' WHERE `settinggroup` = 'dkim' AND `varname` = 'dkim_prefix';"); Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `settinggroup` = 'antispam' WHERE `settinggroup` = 'dkim' AND `varname` = 'dkim_keylength';"); Settings::AddNew("dmarc.use_dmarc", "0"); @@ -55,6 +55,7 @@ if (Froxlor::isFroxlorVersion('2.1.x')) { Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'dkim' AND `varname` = 'dkim_domains';"); Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'dkim' AND `varname` = 'dkim_algorithm';"); Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'dkim' AND `varname` = 'dkim_notes';"); + Update::lastStepStatus(0); $to_clean = [ diff --git a/lib/Froxlor/Config/ConfigDaemon.php b/lib/Froxlor/Config/ConfigDaemon.php index 5929a913..78ca96bd 100644 --- a/lib/Froxlor/Config/ConfigDaemon.php +++ b/lib/Froxlor/Config/ConfigDaemon.php @@ -409,7 +409,7 @@ class ConfigDaemon } $return[] = [ 'type' => 'command', - 'content' => $cmd . ' "' . $this->parseContent($attributes['name']) . '" "' . $this->parseContent($attributes['name']) . '.frx.bak"', + 'content' => '[ -f ' . $this->parseContent($attributes['name']) . ' ] && ' . $cmd . ' "' . $this->parseContent($attributes['name']) . '" "' . $this->parseContent($attributes['name']) . '.frx.bak"', 'execute' => "pre" ]; } diff --git a/lib/Froxlor/Settings.php b/lib/Froxlor/Settings.php index d0f33a95..2103af69 100644 --- a/lib/Froxlor/Settings.php +++ b/lib/Froxlor/Settings.php @@ -137,7 +137,7 @@ class Settings $configfile = Froxlor::getInstallDir() . '/lib/config.inc.php'; if (@file_exists($configfile) && is_readable($configfile)) { - self::$conf = include $configfile; + self::$conf = array_merge(self::$conf, include $configfile); } return true; } diff --git a/lib/configfiles/bookworm.xml b/lib/configfiles/bookworm.xml index cda9767b..99c1d354 100644 --- a/lib/configfiles/bookworm.xml +++ b/lib/configfiles/bookworm.xml @@ -2582,7 +2582,7 @@ plugin { + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> - diff --git a/lib/configfiles/bullseye.xml b/lib/configfiles/bullseye.xml index c49212d9..edda85d7 100644 --- a/lib/configfiles/bullseye.xml +++ b/lib/configfiles/bullseye.xml @@ -4152,7 +4152,7 @@ plugin { + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> - diff --git a/lib/configfiles/focal.xml b/lib/configfiles/focal.xml index ddc1530a..89945256 100644 --- a/lib/configfiles/focal.xml +++ b/lib/configfiles/focal.xml @@ -3375,7 +3375,7 @@ plugin { + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> - diff --git a/lib/configfiles/gentoo.xml b/lib/configfiles/gentoo.xml index cc9f67c6..7027f4c8 100644 --- a/lib/configfiles/gentoo.xml +++ b/lib/configfiles/gentoo.xml @@ -26,6 +26,7 @@ + @@ -2229,7 +2230,7 @@ plugin { + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> - diff --git a/lib/configfiles/jammy.xml b/lib/configfiles/jammy.xml index 323a1f0f..1de7be5b 100644 --- a/lib/configfiles/jammy.xml +++ b/lib/configfiles/jammy.xml @@ -3365,7 +3365,7 @@ plugin { + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> + chown="root:root" chmod="0644" backup="true"> -