Compare commits

..

13 Commits
2.2.7 ... 2.2.8

Author SHA1 Message Date
Michael Kaufmann
1ba5f1bf5c Merge remote-tracking branch 'origin/main' into v2.2 2025-07-08 09:03:16 +02:00
Michael Kaufmann
97360e450d set version to 2.2.8 for maintenance release
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2025-07-08 09:02:19 +02:00
Michael Kaufmann
85299085f0 Merge remote-tracking branch 'origin/main' into v2.2 2025-07-08 09:00:20 +02:00
Michael Kaufmann
6d10a9a096 updated dependencies; fixed typo; improved fpm-pool config section splitting
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2025-07-08 08:59:51 +02:00
Dominik Tugend
4ea5773abf Relax dkim_entry visibilty for admins in domain editor like it is for customers (#1336) 2025-06-24 16:55:50 +02:00
Michael Kaufmann
a8395598c3 do not add ssl_stapling in nginx vhost automatically for let's encrypt certificates as they have removed support for it
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2025-06-24 16:53:16 +02:00
Michael Kaufmann
5beeae8fd1 validate username for webserver/fcgid/php-fpm in global settings to ensure it exists and is not a froxlor-managed user, fixes #1332
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2025-06-05 11:28:27 +02:00
Michael Kaufmann
8f3228716a fix parameter of lng() in UpdateCommand
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2025-05-26 10:18:42 +02:00
kissgyula
f8c8f1c333 Update hu.lng.php (#1330) 2025-05-20 17:33:30 +02:00
Michael Kaufmann
bda644530b fix typo, thx to TechPanda
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2025-05-10 23:03:53 +02:00
dependabot[bot]
69ed733e87 Bump league/commonmark from 2.6.2 to 2.7.0 (#1329)
Bumps [league/commonmark](https://github.com/thephpleague/commonmark) from 2.6.2 to 2.7.0.
- [Release notes](https://github.com/thephpleague/commonmark/releases)
- [Changelog](https://github.com/thephpleague/commonmark/blob/2.7/CHANGELOG.md)
- [Commits](https://github.com/thephpleague/commonmark/compare/2.6.2...2.7.0)

---
updated-dependencies:
- dependency-name: league/commonmark
  dependency-version: 2.7.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-06 08:28:03 +02:00
Michael Kaufmann
c9c803900a set correct field name for 'rewrite subject' in edit-email form, fixes #1328
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2025-05-05 09:43:27 +02:00
Michael Kaufmann
9b5c752380 run database-updates in a new process when using CLI updater to use latest extracted files
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2025-05-05 09:42:46 +02:00
16 changed files with 155 additions and 81 deletions

View File

@@ -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',

View File

@@ -104,6 +104,10 @@ return [
'varname' => 'httpuser',
'type' => 'text',
'default' => 'www-data',
'plausibility_check_method' => [
'\\Froxlor\\Validate\\Check',
'checkSystemUsername'
],
'save_method' => 'storeSettingWebserverFcgidFpmUser'
],
'system_httpgroup' => [

148
composer.lock generated
View File

@@ -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",

View File

@@ -733,7 +733,7 @@ opcache.validate_timestamps'),
('panel', 'logo_overridecustom', '0'),
('panel', 'settings_mode', '0'),
('panel', 'menu_collapsed', '1'),
('panel', 'version', '2.2.7'),
('panel', 'version', '2.2.8'),
('panel', 'db_version', '202412030');

View File

@@ -255,3 +255,8 @@ if (Froxlor::isFroxlorVersion('2.2.6')) {
Update::showUpdateStep("Updating from 2.2.6 to 2.2.7", false);
Froxlor::updateToVersion('2.2.7');
}
if (Froxlor::isFroxlorVersion('2.2.7')) {
Update::showUpdateStep("Updating from 2.2.7 to 2.2.8", false);
Froxlor::updateToVersion('2.2.8');
}

View File

@@ -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)');
}

View File

@@ -83,7 +83,7 @@ final class UpdateCommand extends CliCommand
}
return $result;
}
$output->writeln('<info>' . lng('update.noupdatesavail', (Settings::Get('system.update_channel') == 'testing' ? lng('serversettings.uc_testing') . ' ' : '')) . '</>');
$output->writeln('<info>' . 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;

View File

@@ -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";

View File

@@ -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) {

View File

@@ -31,7 +31,7 @@ final class Froxlor
{
// Main version variable
const VERSION = '2.2.7';
const VERSION = '2.2.8';
// Database version (YYYYMMDDC where C is a daily counter)
const DBVERSION = '202412030';

View File

@@ -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;
}
}

View File

@@ -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']))))

View File

@@ -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',

View File

@@ -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' => [

View File

@@ -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 /).',

View File

@@ -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' => '<div class="text-danger"><b>FIGYELEM:</b></div> 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.<br><br><div class="text-danger">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.</div>',
],
'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).',
],