diff --git a/actions/admin/settings/122.froxlorvhost.php b/actions/admin/settings/122.froxlorvhost.php index fa2ea7c5..bd682279 100644 --- a/actions/admin/settings/122.froxlorvhost.php +++ b/actions/admin/settings/122.froxlorvhost.php @@ -177,6 +177,10 @@ return [ 'type' => 'text', 'default' => 'froxlorlocal', 'string_emptyallowed' => false, + 'plausibility_check_method' => [ + '\\Froxlor\\Validate\\Check', + 'checkSystemUsername' + ], 'save_method' => 'storeSettingWebserverFcgidFpmUser', 'websrv_avail' => [ 'apache2' @@ -246,6 +250,10 @@ return [ 'type' => 'text', 'default' => 'froxlorlocal', 'string_emptyallowed' => false, + 'plausibility_check_method' => [ + '\\Froxlor\\Validate\\Check', + 'checkSystemUsername' + ], 'save_method' => 'storeSettingWebserverFcgidFpmUser', 'visible' => Settings::Get('phpfpm.enabled') && call_user_func([ '\Froxlor\Settings\FroxlorVhostSettings', diff --git a/actions/admin/settings/130.webserver.php b/actions/admin/settings/130.webserver.php index fd149401..dbe6d527 100644 --- a/actions/admin/settings/130.webserver.php +++ b/actions/admin/settings/130.webserver.php @@ -104,6 +104,10 @@ return [ 'varname' => 'httpuser', 'type' => 'text', 'default' => 'www-data', + 'plausibility_check_method' => [ + '\\Froxlor\\Validate\\Check', + 'checkSystemUsername' + ], 'save_method' => 'storeSettingWebserverFcgidFpmUser' ], 'system_httpgroup' => [ diff --git a/composer.lock b/composer.lock index 1ed46ccd..30aad39b 100644 --- a/composer.lock +++ b/composer.lock @@ -201,16 +201,16 @@ }, { "name": "league/commonmark", - "version": "2.6.2", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "06c3b0bf2540338094575612f4a1778d0d2d5e94" + "reference": "6fbb36d44824ed4091adbcf4c7d4a3923cdb3405" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/06c3b0bf2540338094575612f4a1778d0d2d5e94", - "reference": "06c3b0bf2540338094575612f4a1778d0d2d5e94", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/6fbb36d44824ed4091adbcf4c7d4a3923cdb3405", + "reference": "6fbb36d44824ed4091adbcf4c7d4a3923cdb3405", "shasum": "" }, "require": { @@ -247,7 +247,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.7-dev" + "dev-main": "2.8-dev" } }, "autoload": { @@ -304,7 +304,7 @@ "type": "tidelift" } ], - "time": "2025-04-18T21:09:27+00:00" + "time": "2025-05-05T12:20:28+00:00" }, { "name": "league/config", @@ -624,20 +624,20 @@ }, { "name": "pear/net_dns2", - "version": "v1.5.4", + "version": "v1.5.5", "source": { "type": "git", "url": "https://github.com/mikepultz/netdns2.git", - "reference": "c4a167ff1bc93aaae95601ebc86099376c994581" + "reference": "ea39ef5a97d5c2b9893a8c35af7b5fd5b0e40bc9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mikepultz/netdns2/zipball/c4a167ff1bc93aaae95601ebc86099376c994581", - "reference": "c4a167ff1bc93aaae95601ebc86099376c994581", + "url": "https://api.github.com/repos/mikepultz/netdns2/zipball/ea39ef5a97d5c2b9893a8c35af7b5fd5b0e40bc9", + "reference": "ea39ef5a97d5c2b9893a8c35af7b5fd5b0e40bc9", "shasum": "" }, "require": { - "php": ">=5.4" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^9" @@ -671,7 +671,7 @@ "issues": "https://github.com/mikepultz/netdns2/issues", "source": "https://github.com/mikepultz/netdns2" }, - "time": "2023-10-01T05:15:14+00:00" + "time": "2025-05-17T20:56:28+00:00" }, { "name": "phpmailer/phpmailer", @@ -1140,7 +1140,7 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -1199,7 +1199,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0" }, "funding": [ { @@ -1219,16 +1219,16 @@ }, { "name": "symfony/polyfill-iconv", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "48becf00c920479ca2e910c22a5a39e5d47ca956" + "reference": "5f3b930437ae03ae5dff61269024d8ea1b3774aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/48becf00c920479ca2e910c22a5a39e5d47ca956", - "reference": "48becf00c920479ca2e910c22a5a39e5d47ca956", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/5f3b930437ae03ae5dff61269024d8ea1b3774aa", + "reference": "5f3b930437ae03ae5dff61269024d8ea1b3774aa", "shasum": "" }, "require": { @@ -1279,7 +1279,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.32.0" }, "funding": [ { @@ -1295,11 +1295,11 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-09-17T14:58:18+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -1357,7 +1357,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0" }, "funding": [ { @@ -1377,7 +1377,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -1438,7 +1438,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0" }, "funding": [ { @@ -1458,19 +1458,20 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", "shasum": "" }, "require": { + "ext-iconv": "*", "php": ">=7.2" }, "provide": { @@ -1518,7 +1519,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0" }, "funding": [ { @@ -1534,7 +1535,7 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-12-23T08:48:59+00:00" }, { "name": "symfony/polyfill-php72", @@ -1603,7 +1604,7 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -1659,7 +1660,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.32.0" }, "funding": [ { @@ -1679,16 +1680,16 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", "shasum": "" }, "require": { @@ -1739,7 +1740,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0" }, "funding": [ { @@ -1755,11 +1756,11 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-01-02T08:10:11+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -1815,7 +1816,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.32.0" }, "funding": [ { @@ -2561,16 +2562,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.13.0", + "version": "1.13.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "024473a478be9df5fdaca2c793f2232fe788e414" + "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/024473a478be9df5fdaca2c793f2232fe788e414", - "reference": "024473a478be9df5fdaca2c793f2232fe788e414", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/1720ddd719e16cf0db4eb1c6eca108031636d46c", + "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c", "shasum": "" }, "require": { @@ -2609,7 +2610,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.1" }, "funding": [ { @@ -2617,20 +2618,20 @@ "type": "tidelift" } ], - "time": "2025-02-12T12:17:51+00:00" + "time": "2025-04-29T12:36:36+00:00" }, { "name": "nikic/php-parser", - "version": "v5.4.0", + "version": "v5.5.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "447a020a1f875a434d62f2a401f53b82a396e494" + "reference": "ae59794362fe85e051a58ad36b289443f57be7a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", - "reference": "447a020a1f875a434d62f2a401f53b82a396e494", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/ae59794362fe85e051a58ad36b289443f57be7a9", + "reference": "ae59794362fe85e051a58ad36b289443f57be7a9", "shasum": "" }, "require": { @@ -2673,9 +2674,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.5.0" }, - "time": "2024-12-30T11:07:19+00:00" + "time": "2025-05-31T08:24:38+00:00" }, { "name": "pdepend/pdepend", @@ -2979,6 +2980,7 @@ "type": "github" } ], + "abandoned": true, "time": "2020-12-07T05:51:20+00:00" }, { @@ -3066,16 +3068,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.25", + "version": "1.12.27", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "e310849a19e02b8bfcbb63147f495d8f872dd96f" + "reference": "3a6e423c076ab39dfedc307e2ac627ef579db162" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e310849a19e02b8bfcbb63147f495d8f872dd96f", - "reference": "e310849a19e02b8bfcbb63147f495d8f872dd96f", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/3a6e423c076ab39dfedc307e2ac627ef579db162", + "reference": "3a6e423c076ab39dfedc307e2ac627ef579db162", "shasum": "" }, "require": { @@ -3120,7 +3122,7 @@ "type": "github" } ], - "time": "2025-04-27T12:20:45+00:00" + "time": "2025-05-21T20:51:45+00:00" }, { "name": "phpunit/php-code-coverage", @@ -3443,16 +3445,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.22", + "version": "9.6.23", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c" + "reference": "43d2cb18d0675c38bd44982a5d1d88f6d53d8d95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f80235cb4d3caa59ae09be3adf1ded27521d1a9c", - "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/43d2cb18d0675c38bd44982a5d1d88f6d53d8d95", + "reference": "43d2cb18d0675c38bd44982a5d1d88f6d53d8d95", "shasum": "" }, "require": { @@ -3463,7 +3465,7 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.1", + "myclabs/deep-copy": "^1.13.1", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=7.3", @@ -3526,7 +3528,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.22" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.23" }, "funding": [ { @@ -3537,12 +3539,20 @@ "url": "https://github.com/sebastianbergmann", "type": "github" }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, { "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", "type": "tidelift" } ], - "time": "2024-12-05T13:48:26+00:00" + "time": "2025-05-02T06:40:34+00:00" }, { "name": "sebastian/cli-parser", @@ -4571,16 +4581,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.12.2", + "version": "3.13.0", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "6d4cf6032d4b718f168c90a96e36c7d0eaacb2aa" + "reference": "65ff2489553b83b4597e89c3b8b721487011d186" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/6d4cf6032d4b718f168c90a96e36c7d0eaacb2aa", - "reference": "6d4cf6032d4b718f168c90a96e36c7d0eaacb2aa", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/65ff2489553b83b4597e89c3b8b721487011d186", + "reference": "65ff2489553b83b4597e89c3b8b721487011d186", "shasum": "" }, "require": { @@ -4651,7 +4661,7 @@ "type": "thanks_dev" } ], - "time": "2025-04-13T04:10:18+00:00" + "time": "2025-05-11T03:36:00+00:00" }, { "name": "symfony/config", diff --git a/lib/Froxlor/Cli/RunApiCommand.php b/lib/Froxlor/Cli/RunApiCommand.php index 9e692de0..e6b24151 100644 --- a/lib/Froxlor/Cli/RunApiCommand.php +++ b/lib/Froxlor/Cli/RunApiCommand.php @@ -42,7 +42,7 @@ final class RunApiCommand extends CliCommand $this->setDescription('Run an API command as given user'); $this->addArgument('user', InputArgument::REQUIRED, 'Loginname of the user you want to run the command as') ->addArgument('api-command', InputArgument::REQUIRED, 'The command to execute in the form "Module.function"') - ->addArgument('parameters', InputArgument::OPTIONAL, 'Paramaters to pass to the command as JSON array'); + ->addArgument('parameters', InputArgument::OPTIONAL, 'Parameters to pass to the command as JSON array'); $this->addOption('show-params', 's', InputOption::VALUE_NONE, 'Show possible parameters for given api-command (given command will *not* be called)'); } diff --git a/lib/Froxlor/Cli/UpdateCommand.php b/lib/Froxlor/Cli/UpdateCommand.php index 566cd7a6..b5667409 100644 --- a/lib/Froxlor/Cli/UpdateCommand.php +++ b/lib/Froxlor/Cli/UpdateCommand.php @@ -83,7 +83,7 @@ final class UpdateCommand extends CliCommand } return $result; } - $output->writeln('' . lng('update.noupdatesavail', (Settings::Get('system.update_channel') == 'testing' ? lng('serversettings.uc_testing') . ' ' : '')) . ''); + $output->writeln('' . lng('update.noupdatesavail', [(Settings::Get('system.update_channel') == 'testing' ? lng('serversettings.uc_testing') . ' ' : '')]) . ''); } return $result; } @@ -190,7 +190,8 @@ final class UpdateCommand extends CliCommand $question = new ConfirmationQuestion('Update database? [no] ', false, '/^(y|j)/i'); if ($yestoall || $helper->ask($input, $output, $question)) { - $result = $this->runUpdate($output, true); + // run in separate process to ensure the use of newly unpacked files + passthru(Froxlor::getInstallDir() . '/bin/froxlor-cli froxlor:update -dA', $result); } } else { $errmsg = 'error.autoupdate_' . $auex; diff --git a/lib/Froxlor/Cron/Http/Nginx.php b/lib/Froxlor/Cron/Http/Nginx.php index ffe153ee..635514a4 100644 --- a/lib/Froxlor/Cron/Http/Nginx.php +++ b/lib/Froxlor/Cron/Http/Nginx.php @@ -435,7 +435,7 @@ class Nginx extends HttpConfigBase $sslsettings .= '";' . "\n"; } - if ((isset($domain_or_ip['ocsp_stapling']) && $domain_or_ip['ocsp_stapling'] == "1") || (isset($domain_or_ip['letsencrypt']) && $domain_or_ip['letsencrypt'] == "1")) { + if ((isset($domain_or_ip['ocsp_stapling']) && $domain_or_ip['ocsp_stapling'] == "1")) { $sslsettings .= "\t" . 'ssl_stapling on;' . "\n"; $sslsettings .= "\t" . 'ssl_stapling_verify on;' . "\n"; $sslsettings .= "\t" . 'ssl_trusted_certificate ' . FileDir::makeCorrectFile($domain_or_ip['ssl_cert_file']) . ';' . "\n"; diff --git a/lib/Froxlor/Cron/Http/Php/Fpm.php b/lib/Froxlor/Cron/Http/Php/Fpm.php index 3c96fe1b..8a13f849 100644 --- a/lib/Froxlor/Cron/Http/Php/Fpm.php +++ b/lib/Froxlor/Cron/Http/Php/Fpm.php @@ -274,8 +274,8 @@ pm.max_children = 1 $fpm_config .= "\n\n"; foreach ($phpini_array as $inisection) { - $is = explode("=", trim($inisection)); - if (count($is) !== 2 || empty($is[0])) { + $is = explode("=", trim($inisection), 2); + if (empty($is[0])) { continue; } foreach ($this->ini as $sec => $possibles) { diff --git a/lib/Froxlor/Validate/Check.php b/lib/Froxlor/Validate/Check.php index 70c3c9f5..bf04379f 100644 --- a/lib/Froxlor/Validate/Check.php +++ b/lib/Froxlor/Validate/Check.php @@ -359,4 +359,41 @@ class Check return [self::FORMFIELDS_PLAUSIBILITY_CHECK_OK]; } + + /** + * @param $fieldname + * @param $fielddata + * @param $newfieldvalue + * @param $allnewfieldvalues + * @return array|int[] + * @throws \Exception + */ + public static function checkSystemUsername($fieldname, $fielddata, $newfieldvalue, $allnewfieldvalues) + { + if (empty($newfieldvalue) || $fielddata['value'] == $newfieldvalue) { + $returnvalue = [ + self::FORMFIELDS_PLAUSIBILITY_CHECK_OK + ]; + } elseif (function_exists('posix_getpwnam') && posix_getpwnam($newfieldvalue) == false) { + $returnvalue = [ + self::FORMFIELDS_PLAUSIBILITY_CHECK_ERROR, + 'local_user_invalid' + ]; + } else { + // user exists, but cannot be one of the froxlor-customers + $sel_stmt = Database::prepare("SELECT COUNT(*) as numUsers FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `loginname` = :username"); + $result = Database::pexecute_first($sel_stmt, [':username' => $newfieldvalue]); + if ($result && $result['numUsers'] > 0) { + $returnvalue = [ + self::FORMFIELDS_PLAUSIBILITY_CHECK_ERROR, + 'local_user_isfroxloruser' + ]; + } else { + $returnvalue = [ + self::FORMFIELDS_PLAUSIBILITY_CHECK_OK + ]; + } + } + return $returnvalue; + } } diff --git a/lib/formfields/admin/domains/formfield.domains_edit.php b/lib/formfields/admin/domains/formfield.domains_edit.php index 5e95cc9b..9aacad83 100644 --- a/lib/formfields/admin/domains/formfield.domains_edit.php +++ b/lib/formfields/admin/domains/formfield.domains_edit.php @@ -437,7 +437,7 @@ return [ 'section_d' => [ 'title' => lng('admin.nameserversettings'), 'image' => 'icons/domain_edit.png', - 'visible' => ($userinfo['change_serversettings'] == '1' && Settings::Get('system.bind_enable') == '1') || ($result['isemaildomain'] == '1' && (Settings::Get('spf.use_spf') == '1' || Settings::Get('dmarc.use_dmarc') == '1' || (Settings::Get('antispam.activated') == '1' && $result['dkim'] == '1' && $result['dkim_pubkey'] != ''))), + 'visible' => ($userinfo['change_serversettings'] == '1' && Settings::Get('system.bind_enable') == '1') || ($result['isemaildomain'] == '1' && (Settings::Get('spf.use_spf') == '1' || Settings::Get('dmarc.use_dmarc') == '1') || Settings::Get('antispam.activated') == '1' && $result['dkim'] == '1' && $result['dkim_pubkey'] != ''), 'fields' => [ 'isbinddomain' => [ 'visible' => $userinfo['change_serversettings'] == '1' && Settings::Get('system.bind_enable') == '1', @@ -466,7 +466,7 @@ return [ 'value' => (string)(new \Froxlor\Dns\DnsEntry('_dmarc', 'TXT', \Froxlor\Dns\Dns::encloseTXTContent(Settings::Get('dmarc.dmarc_entry')))) ], 'dkim_entry' => [ - 'visible' => (Settings::Get('antispam.activated') == '1' && $result['dkim'] == '1' && $result['dkim_pubkey'] != '' && $result['isemaildomain'] == '1'), + 'visible' => (Settings::Get('antispam.activated') == '1' && $result['dkim'] == '1' && $result['dkim_pubkey'] != ''), 'label' => lng('antispam.required_dkim_dns'), 'type' => 'longtext', 'value' => (string)(new \Froxlor\Dns\DnsEntry('dkim' . $result['dkim_id'] . '._domainkey', 'TXT', \Froxlor\Dns\Dns::encloseTXTContent('v=DKIM1; k=rsa; p='.trim($result['dkim_pubkey'])))) diff --git a/lib/formfields/customer/email/formfield.emails_edit.php b/lib/formfields/customer/email/formfield.emails_edit.php index 89f794d2..60240994 100644 --- a/lib/formfields/customer/email/formfield.emails_edit.php +++ b/lib/formfields/customer/email/formfield.emails_edit.php @@ -111,7 +111,7 @@ return [ 'step' => 0.1, 'value' => $result['spam_tag_level'], ], - 'spam_rewrite_subject' => [ + 'rewrite_subject' => [ 'visible' => Settings::Get('antispam.activated') == '1' && (int)Settings::Get('antispam.default_spam_rewrite_subject') <= 2, 'label' => lng('antispam.rewrite_subject'), 'type' => 'checkbox', diff --git a/lng/de.lng.php b/lng/de.lng.php index 55306156..bc7c66a0 100644 --- a/lng/de.lng.php +++ b/lng/de.lng.php @@ -966,6 +966,8 @@ return [ '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"', 'local_group_exists' => 'Die angegebene Gruppe existiert bereits auf dem System', 'local_group_invalid' => 'Der angegebene Gruppen-Name ist nicht gültig', + 'local_user_invalid' => 'Der angegebene Benutzer-Name ist nicht gültig oder existiert nicht', + 'local_user_isfroxloruser' => 'Der angegebene Benutzer-Name ist ein von froxlor verwalteter Benutzer und kann in diesem Kontext nicht verwendet werden.', 'invaliddnsforletsencrypt' => 'Die DNS-Einträge der Domain enthalten keine der gewählten IP Adressen. Let\'s Encrypt Zertifikats-Erstellung ist nicht möglich.', 'notallowedphpconfigused' => 'Nutzung einer PHP-Konfiguration welche nicht dem Kunden zugeordnet ist', 'pathmustberelative' => 'Der Benutzer hat nicht die benötigten Berechtigungen, um Pfade außerhalb des Kunden-Heimatverzeichnisses anzugeben. Bitte einen relativen Pfad angeben (kein führendes /).', @@ -2108,7 +2110,7 @@ Vielen Dank, Ihr Administrator', 'description' => 'Ist die Nutzung eines hochgeladenen Logos gewünscht, muss diese Einstellung auf "Ja" gesetzt werden. Alternativ kann weiterhin das Theme-basierte Überschreiben via "logo_custom.png" und "logo_custom_login.png" genutzt werden.', ], 'logo_overridecustom' => [ - 'title' => 'Überschreibe benutzerdefinierte Theme-Logos (logo_custom.png und logo_custom_login.png) mit "Logo Bold" (Header und Login, siehe unten)', + 'title' => 'Überschreibe benutzerdefinierte Theme-Logos (logo_custom.png und logo_custom_login.png) mit "Logo Bild" (Header und Login, siehe unten)', 'description' => 'Ist diese Einstellung aktiv, werden benutzerdefinierte Logos im Theme-Ordner mit dem "Logo Bild" ersetzt', ], 'createstdsubdom_default' => [ diff --git a/lng/en.lng.php b/lng/en.lng.php index e79abef9..97239bc7 100644 --- a/lng/en.lng.php +++ b/lng/en.lng.php @@ -1039,6 +1039,8 @@ return [ '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"', 'local_group_exists' => 'The given group already exists on the system.', 'local_group_invalid' => 'The given group name is invalid', + 'local_user_invalid' => 'The given user name is invalid or does not exist', + 'local_user_isfroxloruser' => 'The given user name is a froxlor managed username and cannot be used in this context', 'invaliddnsforletsencrypt' => 'The domains DNS does not include any of the chosen IP addresses. Let\'s Encrypt certificate generation not possible.', 'notallowedphpconfigused' => 'Trying to use php-config which is not assigned to customer', 'pathmustberelative' => 'The user does not have the permission to specify directories outside the customers home-directory. Please specify a relative path (no leading /).', diff --git a/lng/hu.lng.php b/lng/hu.lng.php index ccd4e8b6..5a539e7c 100644 --- a/lng/hu.lng.php +++ b/lng/hu.lng.php @@ -2045,6 +2045,11 @@ Jelszó: {USR_PASS} 'description' => 'Parancs a cronjobjaink végrehajtásához. Csak akkor változtassa meg, ha tudja, mit csinál (alapértelmezett: "/usr/bin/nice -n 5 /usr/bin/php -q")!', ], 'system_cron_allowautoupdate' => [ + 'title' => 'Automatikus adatbázis-frissítések engedélyezése', + 'description' => '
FIGYELEM:
Ez a beállítás lehetővé teszi a cronjob számára, hogy megkerülje a froxlor fájlok és az adatbázis verzióellenőrzését, és verzióeltérés esetén lefuttassa az adatbázis-frissítéseket.

Az automatikus frissítés mindig az alapértelmezett értékeket állítja be az új beállításokhoz vagy változtatásokhoz. Ez nem mindig felel meg az Ön rendszerének. Kérjük, gondolja át kétszer, mielőtt aktiválja ezt a beállítást.
', + ], + 'dns_createhostnameentry' => 'Bind-zone/config létrehozása a rendszer hosztnévhez', + 'panel_password_alpha_lower' => [ 'title' => 'Kisbetű', 'description' => 'A jelszónak tartalmaznia kell legalább egy kisbetűt (a-z).', ],