Compare commits

...

18 Commits

Author SHA1 Message Date
Michael Kaufmann
596075d141 set version to 2.2.0 for upcoming release
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2024-08-23 09:22:35 +02:00
Michael Kaufmann
a58a5fd972 correctly get target filename for jqSpeciallogfileNote action call via ajax, fixes #1267
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2024-08-16 09:22:46 +02:00
Michael Kaufmann
bcbfcb34e8 fix typo in varchar length of selector field of new panel_2fa_tokens table, thx to Davidd
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2024-08-14 20:26:18 +02:00
Michael Kaufmann
56d8a565b4 Merge remote-tracking branch 'origin/main' into v2.2 2024-08-14 12:39:03 +02:00
dependabot[bot]
a60c21218c Bump axios from 1.6.0 to 1.7.4 (#1266)
Bumps [axios](https://github.com/axios/axios) from 1.6.0 to 1.7.4.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.6.0...v1.7.4)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-14 12:38:33 +02:00
Michael Kaufmann
cd2a08e731 Merge remote-tracking branch 'origin/main' into v2.2 2024-08-14 12:29:27 +02:00
Michael Kaufmann
5d2ce4ecfb allow 60sec discrepancy for email based 2fa; fix dbms version compare issue when removing user; adjust pure-ftpd mysql.conf file permissions
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2024-08-12 18:37:38 +02:00
rex2630
869b01204a Add new missing strings + fix typo (#1264) 2024-08-11 21:45:11 +02:00
Michael Kaufmann
d357bded60 Merge remote-tracking branch 'origin/main' into v2.2 2024-08-08 09:28:05 +02:00
Michael Kaufmann
292741516a set version to 2.2.0-rc3 for upcoming release-candidate
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2024-08-08 09:25:02 +02:00
Michael Kaufmann
27db472a0c Merge remote-tracking branch 'origin/main' into v2.2 2024-08-08 09:22:02 +02:00
Michael Kaufmann
fc4041e88c fixing reports being sent daily under specific conditions; update dependencies
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2024-08-08 09:18:49 +02:00
Michael Kaufmann
75bc0142a0 add missing use-statement for opcacheinfo page; ease ClientConnectRate ban-filter for proftpd; allow null-mx entry in dns-editor, fixes #1263
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2024-07-27 19:51:55 +02:00
Michael Kaufmann
585b16d199 set version to 2.2.0-rc2 for upcoming release-candidate
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2024-07-21 10:15:53 +02:00
Michael Kaufmann
4d3cf5da9a add column '2fa status' for customers and admins
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2024-07-20 23:26:53 +02:00
Michael Kaufmann
2dae780e0b implement 2fa remember browser, fixes #1259
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2024-07-20 10:16:48 +02:00
Michael Kaufmann
bda24d7d63 show email-only domains in customers list for potential dns entries information (if necessary)
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2024-07-19 22:16:41 +02:00
Michael Kaufmann
9d47d670a1 fix correctly handling catchall-flag when updating email-address, fixes #1260
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2024-07-17 21:21:47 +02:00
20 changed files with 187 additions and 141 deletions

View File

@@ -35,6 +35,7 @@ require __DIR__ . '/lib/init.php';
use Froxlor\FroxlorLogger; use Froxlor\FroxlorLogger;
use Froxlor\UI\HTML; use Froxlor\UI\HTML;
use Froxlor\UI\Panel\UI; use Froxlor\UI\Panel\UI;
use Froxlor\UI\Request;
use Froxlor\UI\Response; use Froxlor\UI\Response;
if ($action == 'reset' && function_exists('opcache_reset') && $userinfo['change_serversettings'] == '1') { if ($action == 'reset' && function_exists('opcache_reset') && $userinfo['change_serversettings'] == '1') {

192
composer.lock generated
View File

@@ -8,16 +8,16 @@
"packages": [ "packages": [
{ {
"name": "amnuts/opcache-gui", "name": "amnuts/opcache-gui",
"version": "3.5.4", "version": "3.5.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/amnuts/opcache-gui.git", "url": "https://github.com/amnuts/opcache-gui.git",
"reference": "f3a8fe44c0a4c69dd69b9999d68f9097ee362946" "reference": "4ad9866c4bb5a96fd8a40353afb15f6934f4919b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/amnuts/opcache-gui/zipball/f3a8fe44c0a4c69dd69b9999d68f9097ee362946", "url": "https://api.github.com/repos/amnuts/opcache-gui/zipball/4ad9866c4bb5a96fd8a40353afb15f6934f4919b",
"reference": "f3a8fe44c0a4c69dd69b9999d68f9097ee362946", "reference": "4ad9866c4bb5a96fd8a40353afb15f6934f4919b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -58,7 +58,7 @@
"support": { "support": {
"email": "andy@amnuts.com", "email": "andy@amnuts.com",
"issues": "https://github.com/amnuts/opcache-gui/issues", "issues": "https://github.com/amnuts/opcache-gui/issues",
"source": "https://github.com/amnuts/opcache-gui/tree/3.5.4" "source": "https://github.com/amnuts/opcache-gui/tree/3.5.5"
}, },
"funding": [ "funding": [
{ {
@@ -66,20 +66,20 @@
"type": "github" "type": "github"
} }
], ],
"time": "2023-10-25T19:09:56+00:00" "time": "2024-06-23T13:01:33+00:00"
}, },
{ {
"name": "dflydev/dot-access-data", "name": "dflydev/dot-access-data",
"version": "v3.0.2", "version": "v3.0.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/dflydev/dflydev-dot-access-data.git", "url": "https://github.com/dflydev/dflydev-dot-access-data.git",
"reference": "f41715465d65213d644d3141a6a93081be5d3549" "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f",
"reference": "f41715465d65213d644d3141a6a93081be5d3549", "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -139,9 +139,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
"source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3"
}, },
"time": "2022-10-27T11:44:00+00:00" "time": "2024-07-08T12:26:09+00:00"
}, },
{ {
"name": "froxlor/idna-convert-legacy", "name": "froxlor/idna-convert-legacy",
@@ -201,16 +201,16 @@
}, },
{ {
"name": "league/commonmark", "name": "league/commonmark",
"version": "2.4.2", "version": "2.5.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/commonmark.git", "url": "https://github.com/thephpleague/commonmark.git",
"reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf" "reference": "ac815920de0eff6de947eac0a6a94e5ed0fb147c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf", "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/ac815920de0eff6de947eac0a6a94e5ed0fb147c",
"reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf", "reference": "ac815920de0eff6de947eac0a6a94e5ed0fb147c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -223,8 +223,8 @@
}, },
"require-dev": { "require-dev": {
"cebe/markdown": "^1.0", "cebe/markdown": "^1.0",
"commonmark/cmark": "0.30.3", "commonmark/cmark": "0.31.0",
"commonmark/commonmark.js": "0.30.0", "commonmark/commonmark.js": "0.31.0",
"composer/package-versions-deprecated": "^1.8", "composer/package-versions-deprecated": "^1.8",
"embed/embed": "^4.4", "embed/embed": "^4.4",
"erusev/parsedown": "^1.0", "erusev/parsedown": "^1.0",
@@ -246,7 +246,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "2.5-dev" "dev-main": "2.6-dev"
} }
}, },
"autoload": { "autoload": {
@@ -303,7 +303,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-02-02T11:59:32+00:00" "time": "2024-07-24T12:52:09+00:00"
}, },
{ {
"name": "league/config", "name": "league/config",
@@ -973,16 +973,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v5.4.40", "version": "v5.4.42",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "aa73115c0c24220b523625bfcfa655d7d73662dd" "reference": "cef62396a0477e94fc52e87a17c6e5c32e226b7f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/aa73115c0c24220b523625bfcfa655d7d73662dd", "url": "https://api.github.com/repos/symfony/console/zipball/cef62396a0477e94fc52e87a17c6e5c32e226b7f",
"reference": "aa73115c0c24220b523625bfcfa655d7d73662dd", "reference": "cef62396a0477e94fc52e87a17c6e5c32e226b7f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1052,7 +1052,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v5.4.40" "source": "https://github.com/symfony/console/tree/v5.4.42"
}, },
"funding": [ "funding": [
{ {
@@ -1068,7 +1068,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-05-31T14:33:22+00:00" "time": "2024-07-26T12:21:55+00:00"
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
@@ -1849,16 +1849,16 @@
}, },
{ {
"name": "symfony/string", "name": "symfony/string",
"version": "v5.4.40", "version": "v5.4.42",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/string.git", "url": "https://github.com/symfony/string.git",
"reference": "142877285aa974a6f7685e292ab5ba9aae86b143" "reference": "909cec913edea162a3b2836788228ad45fcab337"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/142877285aa974a6f7685e292ab5ba9aae86b143", "url": "https://api.github.com/repos/symfony/string/zipball/909cec913edea162a3b2836788228ad45fcab337",
"reference": "142877285aa974a6f7685e292ab5ba9aae86b143", "reference": "909cec913edea162a3b2836788228ad45fcab337",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1915,7 +1915,7 @@
"utf8" "utf8"
], ],
"support": { "support": {
"source": "https://github.com/symfony/string/tree/v5.4.40" "source": "https://github.com/symfony/string/tree/v5.4.42"
}, },
"funding": [ "funding": [
{ {
@@ -1931,7 +1931,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-05-31T14:33:22+00:00" "time": "2024-07-20T18:38:32+00:00"
}, },
{ {
"name": "twig/twig", "name": "twig/twig",
@@ -2276,30 +2276,38 @@
"packages-dev": [ "packages-dev": [
{ {
"name": "composer/pcre", "name": "composer/pcre",
"version": "3.1.4", "version": "3.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/pcre.git", "url": "https://github.com/composer/pcre.git",
"reference": "04229f163664973f68f38f6f73d917799168ef24" "reference": "ea4ab6f9580a4fd221e0418f2c357cdd39102a90"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/pcre/zipball/04229f163664973f68f38f6f73d917799168ef24", "url": "https://api.github.com/repos/composer/pcre/zipball/ea4ab6f9580a4fd221e0418f2c357cdd39102a90",
"reference": "04229f163664973f68f38f6f73d917799168ef24", "reference": "ea4ab6f9580a4fd221e0418f2c357cdd39102a90",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.4 || ^8.0" "php": "^7.4 || ^8.0"
}, },
"conflict": {
"phpstan/phpstan": "<1.11.8"
},
"require-dev": { "require-dev": {
"phpstan/phpstan": "^1.3", "phpstan/phpstan": "^1.11.8",
"phpstan/phpstan-strict-rules": "^1.1", "phpstan/phpstan-strict-rules": "^1.1",
"symfony/phpunit-bridge": "^5" "phpunit/phpunit": "^8 || ^9"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "3.x-dev" "dev-main": "3.x-dev"
},
"phpstan": {
"includes": [
"extension.neon"
]
} }
}, },
"autoload": { "autoload": {
@@ -2327,7 +2335,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/composer/pcre/issues", "issues": "https://github.com/composer/pcre/issues",
"source": "https://github.com/composer/pcre/tree/3.1.4" "source": "https://github.com/composer/pcre/tree/3.2.0"
}, },
"funding": [ "funding": [
{ {
@@ -2343,7 +2351,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-05-27T13:40:54+00:00" "time": "2024-07-25T09:36:02+00:00"
}, },
{ {
"name": "composer/xdebug-handler", "name": "composer/xdebug-handler",
@@ -2543,16 +2551,16 @@
}, },
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
"version": "v5.0.2", "version": "v5.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/683130c2ff8c2739f4822ff7ac5c873ec529abd1",
"reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2563,7 +2571,7 @@
}, },
"require-dev": { "require-dev": {
"ircmaxell/php-yacc": "^0.0.7", "ircmaxell/php-yacc": "^0.0.7",
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" "phpunit/phpunit": "^9.0"
}, },
"bin": [ "bin": [
"bin/php-parse" "bin/php-parse"
@@ -2595,9 +2603,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/nikic/PHP-Parser/issues", "issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" "source": "https://github.com/nikic/PHP-Parser/tree/v5.1.0"
}, },
"time": "2024-03-05T20:51:40+00:00" "time": "2024-07-01T20:03:41+00:00"
}, },
{ {
"name": "pdepend/pdepend", "name": "pdepend/pdepend",
@@ -2988,16 +2996,16 @@
}, },
{ {
"name": "phpstan/phpstan", "name": "phpstan/phpstan",
"version": "1.11.5", "version": "1.11.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpstan.git", "url": "https://github.com/phpstan/phpstan.git",
"reference": "490f0ae1c92b082f154681d7849aee776a7c1443" "reference": "e370bcddadaede0c1716338b262346f40d296f82"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/490f0ae1c92b082f154681d7849aee776a7c1443", "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e370bcddadaede0c1716338b262346f40d296f82",
"reference": "490f0ae1c92b082f154681d7849aee776a7c1443", "reference": "e370bcddadaede0c1716338b262346f40d296f82",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3042,7 +3050,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-06-17T15:10:54+00:00" "time": "2024-08-01T16:25:18+00:00"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
@@ -3365,45 +3373,45 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "9.6.19", "version": "9.6.20",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "a1a54a473501ef4cdeaae4e06891674114d79db8" "reference": "49d7820565836236411f5dc002d16dd689cde42f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a1a54a473501ef4cdeaae4e06891674114d79db8", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/49d7820565836236411f5dc002d16dd689cde42f",
"reference": "a1a54a473501ef4cdeaae4e06891674114d79db8", "reference": "49d7820565836236411f5dc002d16dd689cde42f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/instantiator": "^1.3.1 || ^2", "doctrine/instantiator": "^1.5.0 || ^2",
"ext-dom": "*", "ext-dom": "*",
"ext-json": "*", "ext-json": "*",
"ext-libxml": "*", "ext-libxml": "*",
"ext-mbstring": "*", "ext-mbstring": "*",
"ext-xml": "*", "ext-xml": "*",
"ext-xmlwriter": "*", "ext-xmlwriter": "*",
"myclabs/deep-copy": "^1.10.1", "myclabs/deep-copy": "^1.12.0",
"phar-io/manifest": "^2.0.3", "phar-io/manifest": "^2.0.4",
"phar-io/version": "^3.0.2", "phar-io/version": "^3.2.1",
"php": ">=7.3", "php": ">=7.3",
"phpunit/php-code-coverage": "^9.2.28", "phpunit/php-code-coverage": "^9.2.31",
"phpunit/php-file-iterator": "^3.0.5", "phpunit/php-file-iterator": "^3.0.6",
"phpunit/php-invoker": "^3.1.1", "phpunit/php-invoker": "^3.1.1",
"phpunit/php-text-template": "^2.0.3", "phpunit/php-text-template": "^2.0.4",
"phpunit/php-timer": "^5.0.2", "phpunit/php-timer": "^5.0.3",
"sebastian/cli-parser": "^1.0.1", "sebastian/cli-parser": "^1.0.2",
"sebastian/code-unit": "^1.0.6", "sebastian/code-unit": "^1.0.8",
"sebastian/comparator": "^4.0.8", "sebastian/comparator": "^4.0.8",
"sebastian/diff": "^4.0.3", "sebastian/diff": "^4.0.6",
"sebastian/environment": "^5.1.3", "sebastian/environment": "^5.1.5",
"sebastian/exporter": "^4.0.5", "sebastian/exporter": "^4.0.6",
"sebastian/global-state": "^5.0.1", "sebastian/global-state": "^5.0.7",
"sebastian/object-enumerator": "^4.0.3", "sebastian/object-enumerator": "^4.0.4",
"sebastian/resource-operations": "^3.0.3", "sebastian/resource-operations": "^3.0.4",
"sebastian/type": "^3.2", "sebastian/type": "^3.2.1",
"sebastian/version": "^3.0.2" "sebastian/version": "^3.0.2"
}, },
"suggest": { "suggest": {
@@ -3448,7 +3456,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy", "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.19" "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.20"
}, },
"funding": [ "funding": [
{ {
@@ -3464,7 +3472,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-04-05T04:35:58+00:00" "time": "2024-07-10T11:45:39+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",
@@ -4493,16 +4501,16 @@
}, },
{ {
"name": "squizlabs/php_codesniffer", "name": "squizlabs/php_codesniffer",
"version": "3.10.1", "version": "3.10.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
"reference": "8f90f7a53ce271935282967f53d0894f8f1ff877" "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/8f90f7a53ce271935282967f53d0894f8f1ff877", "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/86e5f5dd9a840c46810ebe5ff1885581c42a3017",
"reference": "8f90f7a53ce271935282967f53d0894f8f1ff877", "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4569,7 +4577,7 @@
"type": "open_collective" "type": "open_collective"
} }
], ],
"time": "2024-05-22T21:24:41+00:00" "time": "2024-07-21T23:26:44+00:00"
}, },
{ {
"name": "symfony/config", "name": "symfony/config",
@@ -4652,16 +4660,16 @@
}, },
{ {
"name": "symfony/dependency-injection", "name": "symfony/dependency-injection",
"version": "v5.4.40", "version": "v5.4.42",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/dependency-injection.git", "url": "https://github.com/symfony/dependency-injection.git",
"reference": "408b33326496030c201b8051b003e9e8cdb2efc9" "reference": "c8409889fdbf48b99271930ea0ebcf3ee5e1ceae"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/408b33326496030c201b8051b003e9e8cdb2efc9", "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c8409889fdbf48b99271930ea0ebcf3ee5e1ceae",
"reference": "408b33326496030c201b8051b003e9e8cdb2efc9", "reference": "c8409889fdbf48b99271930ea0ebcf3ee5e1ceae",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4721,7 +4729,7 @@
"description": "Allows you to standardize and centralize the way objects are constructed in your application", "description": "Allows you to standardize and centralize the way objects are constructed in your application",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/dependency-injection/tree/v5.4.40" "source": "https://github.com/symfony/dependency-injection/tree/v5.4.42"
}, },
"funding": [ "funding": [
{ {
@@ -4737,20 +4745,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-05-31T14:33:22+00:00" "time": "2024-07-25T13:57:40+00:00"
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
"version": "v5.4.40", "version": "v5.4.41",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/filesystem.git", "url": "https://github.com/symfony/filesystem.git",
"reference": "26dd9912df6940810ea00f8f53ad48d6a3424995" "reference": "6d29dd9340b372fa603f04e6df4dd76bb808591e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/26dd9912df6940810ea00f8f53ad48d6a3424995", "url": "https://api.github.com/repos/symfony/filesystem/zipball/6d29dd9340b372fa603f04e6df4dd76bb808591e",
"reference": "26dd9912df6940810ea00f8f53ad48d6a3424995", "reference": "6d29dd9340b372fa603f04e6df4dd76bb808591e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4788,7 +4796,7 @@
"description": "Provides basic utilities for the filesystem", "description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/filesystem/tree/v5.4.40" "source": "https://github.com/symfony/filesystem/tree/v5.4.41"
}, },
"funding": [ "funding": [
{ {
@@ -4804,7 +4812,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-05-31T14:33:22+00:00" "time": "2024-06-28T09:36:24+00:00"
}, },
{ {
"name": "symfony/polyfill-php81", "name": "symfony/polyfill-php81",

View File

@@ -84,7 +84,8 @@ if ($action == '2fa_entercode') {
// verify code set to user's data_2fa field // verify code set to user's data_2fa field
$sel_stmt = Database::prepare("SELECT `data_2fa` FROM " . $table . " WHERE `" . $field . "` = :uid"); $sel_stmt = Database::prepare("SELECT `data_2fa` FROM " . $table . " WHERE `" . $field . "` = :uid");
$userinfo_code = Database::pexecute_first($sel_stmt, ['uid' => $uid]); $userinfo_code = Database::pexecute_first($sel_stmt, ['uid' => $uid]);
$result = $tfa->verifyCode($userinfo_code['data_2fa'], $code); // 60sec discrepancy (possible slow email delivery)
$result = $tfa->verifyCode($userinfo_code['data_2fa'], $code, 60);
} else { } else {
$result = $tfa->verifyCode($_SESSION['secret_2fa'], $code, 3); $result = $tfa->verifyCode($_SESSION['secret_2fa'], $code, 3);
} }
@@ -393,6 +394,9 @@ if ($action == '2fa_entercode') {
} }
exit(); exit();
} }
// not found or invalid, this cookie is useless, get rid of it
unset($_COOKIE['frx_2fa_remember']);
setcookie('frx_2fa_remember', "", time()-3600);
} }
// redirect to code-enter-page // redirect to code-enter-page

View File

@@ -730,8 +730,8 @@ opcache.validate_timestamps'),
('panel', 'logo_overridecustom', '0'), ('panel', 'logo_overridecustom', '0'),
('panel', 'settings_mode', '0'), ('panel', 'settings_mode', '0'),
('panel', 'menu_collapsed', '1'), ('panel', 'menu_collapsed', '1'),
('panel', 'version', '2.2.0-rc2'), ('panel', 'version', '2.2.0'),
('panel', 'db_version', '202407200'); ('panel', 'db_version', '202408140');
DROP TABLE IF EXISTS `panel_tasks`; DROP TABLE IF EXISTS `panel_tasks`;
@@ -1054,7 +1054,7 @@ CREATE TABLE `panel_loginlinks` (
DROP TABLE IF EXISTS `panel_2fa_tokens`; DROP TABLE IF EXISTS `panel_2fa_tokens`;
CREATE TABLE `panel_2fa_tokens` ( CREATE TABLE `panel_2fa_tokens` (
`id` int(11) NOT NULL auto_increment, `id` int(11) NOT NULL auto_increment,
`selector` varchar(20) NOT NULL, `selector` varchar(200) NOT NULL,
`token` varchar(200) NOT NULL, `token` varchar(200) NOT NULL,
`userid` int(11) NOT NULL default '0', `userid` int(11) NOT NULL default '0',
`valid_until` int(15) NOT NULL, `valid_until` int(15) NOT NULL,

View File

@@ -145,3 +145,22 @@ if (Froxlor::isFroxlorVersion('2.2.0-rc1')) {
Update::showUpdateStep("Updating from 2.2.0-rc1 to 2.2.0-rc2", false); Update::showUpdateStep("Updating from 2.2.0-rc1 to 2.2.0-rc2", false);
Froxlor::updateToVersion('2.2.0-rc2'); Froxlor::updateToVersion('2.2.0-rc2');
} }
if (Froxlor::isFroxlorVersion('2.2.0-rc2')) {
Update::showUpdateStep("Updating from 2.2.0-rc2 to 2.2.0-rc3", false);
Froxlor::updateToVersion('2.2.0-rc3');
}
if (Froxlor::isDatabaseVersion('202407200')) {
Update::showUpdateStep("Adjusting field in 2fa-token table");
Database::query("ALTER TABLE `panel_2fa_tokens` CHANGE COLUMN `selector` `selector` varchar(200) NOT NULL;");
Update::lastStepStatus(0);
Froxlor::updateToDbVersion('202408140');
}
if (Froxlor::isFroxlorVersion('2.2.0-rc3')) {
Update::showUpdateStep("Updating from 2.2.0-rc3 to 2.2.0 stable", false);
Froxlor::updateToVersion('2.2.0');
}

View File

@@ -227,7 +227,7 @@ class DomainZones extends ApiCommand implements ResourceEntity
// remove it for checks // remove it for checks
$content = substr($content, 0, -1); $content = substr($content, 0, -1);
} }
if (!Validate::validateDomain($content)) { if (!empty($content) && !Validate::validateDomain($content)) {
$errors[] = lng('error.dns_mx_needdom'); $errors[] = lng('error.dns_mx_needdom');
} else { } else {
// check whether there is a CNAME-record for the same resource // check whether there is a CNAME-record for the same resource
@@ -244,6 +244,10 @@ class DomainZones extends ApiCommand implements ResourceEntity
} }
// append trailing dot (again) // append trailing dot (again)
$content .= '.'; $content .= '.';
// if content is only ".", the prio needs to be 0 which results in a "null mx" entry
if ($content == '.' && $prio != 0) {
$prio = 0;
}
} elseif ($type == 'NS') { } elseif ($type == 'NS') {
// check for trailing dot // check for trailing dot
if (substr($content, -1) == '.') { if (substr($content, -1) == '.') {

View File

@@ -70,7 +70,7 @@ class ReportsCron extends FroxlorCron
) as `traffic_used` ) as `traffic_used`
FROM `" . TABLE_PANEL_CUSTOMERS . "` AS `c` FROM `" . TABLE_PANEL_CUSTOMERS . "` AS `c`
LEFT JOIN `" . TABLE_PANEL_ADMINS . "` AS `a` LEFT JOIN `" . TABLE_PANEL_ADMINS . "` AS `a`
ON `a`.`adminid` = `c`.`adminid` WHERE `c`.`reportsent` <> '1' ON `a`.`adminid` = `c`.`adminid` WHERE `c`.`reportsent` & 1 = 0
"); ");
$result_data = [ $result_data = [
@@ -79,6 +79,11 @@ class ReportsCron extends FroxlorCron
]; ];
Database::pexecute($result_stmt, $result_data); Database::pexecute($result_stmt, $result_data);
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `reportsent` = `reportsent` + 1
WHERE `customerid` = :customerid
");
while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) { while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
$row['traffic'] *= 1024; $row['traffic'] *= 1024;
$row['traffic_used'] *= 1024; $row['traffic_used'] *= 1024;
@@ -148,10 +153,6 @@ class ReportsCron extends FroxlorCron
} }
$mail->ClearAddresses(); $mail->ClearAddresses();
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `reportsent` = '1'
WHERE `customerid` = :customerid
");
Database::pexecute($upd_stmt, [ Database::pexecute($upd_stmt, [
'customerid' => $row['customerid'] 'customerid' => $row['customerid']
]); ]);
@@ -165,7 +166,7 @@ class ReportsCron extends FroxlorCron
FROM `" . TABLE_PANEL_TRAFFIC_ADMINS . "` `t` FROM `" . TABLE_PANEL_TRAFFIC_ADMINS . "` `t`
WHERE `t`.`adminid` = `a`.`adminid` AND `t`.`year` = :year AND `t`.`month` = :month WHERE `t`.`adminid` = `a`.`adminid` AND `t`.`year` = :year AND `t`.`month` = :month
) as `traffic_used_total` ) as `traffic_used_total`
FROM `" . TABLE_PANEL_ADMINS . "` `a` WHERE `a`.`reportsent` = '0' FROM `" . TABLE_PANEL_ADMINS . "` `a` WHERE `a`.`reportsent` & 1 = 0
"); ");
$result_data = [ $result_data = [
@@ -174,6 +175,11 @@ class ReportsCron extends FroxlorCron
]; ];
Database::pexecute($result_stmt, $result_data); Database::pexecute($result_stmt, $result_data);
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_ADMINS . "` SET `reportsent` = `reportsent` + 1
WHERE `adminid` = :adminid
");
while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) { while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
$row['traffic'] *= 1024; $row['traffic'] *= 1024;
$row['traffic_used_total'] *= 1024; $row['traffic_used_total'] *= 1024;
@@ -231,10 +237,6 @@ class ReportsCron extends FroxlorCron
} }
$mail->ClearAddresses(); $mail->ClearAddresses();
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_ADMINS . "` SET `reportsent` = '1'
WHERE `adminid` = :adminid
");
Database::pexecute($upd_stmt, [ Database::pexecute($upd_stmt, [
'adminid' => $row['adminid'] 'adminid' => $row['adminid']
]); ]);
@@ -344,11 +346,16 @@ class ReportsCron extends FroxlorCron
FROM `" . TABLE_PANEL_CUSTOMERS . "` AS `c` FROM `" . TABLE_PANEL_CUSTOMERS . "` AS `c`
LEFT JOIN `" . TABLE_PANEL_ADMINS . "` AS `a` LEFT JOIN `" . TABLE_PANEL_ADMINS . "` AS `a`
ON `a`.`adminid` = `c`.`adminid` ON `a`.`adminid` = `c`.`adminid`
WHERE `c`.`diskspace` > '0' AND `c`.`reportsent` <> '2' WHERE `c`.`diskspace` > '0' AND `c`.`reportsent` & 2 = 0
"); ");
$mail = new Mailer(true); $mail = new Mailer(true);
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `reportsent` = `reportsent` + 2
WHERE `customerid` = :customerid
");
while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) { while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
$row['diskspace'] *= 1024; $row['diskspace'] *= 1024;
$row['diskspace_used'] *= 1024; $row['diskspace_used'] *= 1024;
@@ -418,10 +425,6 @@ class ReportsCron extends FroxlorCron
} }
$mail->ClearAddresses(); $mail->ClearAddresses();
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `reportsent` = '2'
WHERE `customerid` = :customerid
");
Database::pexecute($upd_stmt, [ Database::pexecute($upd_stmt, [
'customerid' => $row['customerid'] 'customerid' => $row['customerid']
]); ]);
@@ -432,7 +435,12 @@ class ReportsCron extends FroxlorCron
* report about diskusage for admins/reseller * report about diskusage for admins/reseller
*/ */
$result_stmt = Database::query(" $result_stmt = Database::query("
SELECT `a`.* FROM `" . TABLE_PANEL_ADMINS . "` `a` WHERE `a`.`reportsent` <> '2' SELECT `a`.* FROM `" . TABLE_PANEL_ADMINS . "` `a` WHERE `a`.`reportsent` & 2 = 0
");
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_ADMINS . "` SET `reportsent` = `reportsent` + 2
WHERE `adminid` = :adminid
"); ");
while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) { while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
@@ -492,10 +500,6 @@ class ReportsCron extends FroxlorCron
} }
$mail->ClearAddresses(); $mail->ClearAddresses();
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_ADMINS . "` SET `reportsent` = '2'
WHERE `adminid` = :adminid
");
Database::pexecute($upd_stmt, [ Database::pexecute($upd_stmt, [
'adminid' => $row['adminid'] 'adminid' => $row['adminid']
]); ]);

View File

@@ -187,7 +187,7 @@ class DbManagerMySQL
*/ */
public function deleteUser(string $username, string $host) public function deleteUser(string $username, string $host)
{ {
if (Database::getAttribute(PDO::ATTR_SERVER_VERSION) < '5.0.2') { if (version_compare(Database::getAttribute(PDO::ATTR_SERVER_VERSION), '5.0.2', '<')) {
// Revoke privileges (only required for MySQL 4.1.2 - 5.0.1) // Revoke privileges (only required for MySQL 4.1.2 - 5.0.1)
$stmt = Database::prepare("REVOKE ALL PRIVILEGES ON * . * FROM `" . $username . "`@`" . $host . "`"); $stmt = Database::prepare("REVOKE ALL PRIVILEGES ON * . * FROM `" . $username . "`@`" . $host . "`");
Database::pexecute($stmt); Database::pexecute($stmt);

View File

@@ -31,10 +31,10 @@ final class Froxlor
{ {
// Main version variable // Main version variable
const VERSION = '2.2.0-rc2'; const VERSION = '2.2.0';
// Database version (YYYYMMDDC where C is a daily counter) // Database version (YYYYMMDDC where C is a daily counter)
const DBVERSION = '202407200'; const DBVERSION = '202408140';
// Distribution branding-tag (used for Debian etc.) // Distribution branding-tag (used for Debian etc.)
const BRANDING = ''; const BRANDING = '';

View File

@@ -3093,7 +3093,7 @@ MaxLoginAttempts 3
BanLog /var/log/proftpd/ban.log BanLog /var/log/proftpd/ban.log
BanTable /etc/proftpd/ban.tab BanTable /etc/proftpd/ban.tab
BanMessage "User %u was banned." BanMessage "User %u was banned."
BanOnEvent ClientConnectRate 5/00:00:02 12:00:00 "Stop connecting frequently" BanOnEvent ClientConnectRate 10/00:00:02 02:00:00 "Stop connecting frequently"
BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00 BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00
BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99 BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99
BanControlsACLs all allow user root BanControlsACLs all allow user root
@@ -3174,7 +3174,7 @@ no
</content> </content>
</file> </file>
<file name="/etc/pure-ftpd/db/mysql.conf" chown="root:0" <file name="/etc/pure-ftpd/db/mysql.conf" chown="root:0"
chmod="0644" backup="true"> chmod="0640" backup="true">
<content><![CDATA[ <content><![CDATA[
############################################## ##############################################
# # # #

View File

@@ -4661,7 +4661,7 @@ MaxLoginAttempts 3
BanLog /var/log/proftpd/ban.log BanLog /var/log/proftpd/ban.log
BanTable /etc/proftpd/ban.tab BanTable /etc/proftpd/ban.tab
BanMessage "User %u was banned." BanMessage "User %u was banned."
BanOnEvent ClientConnectRate 5/00:00:02 12:00:00 "Stop connecting frequently" BanOnEvent ClientConnectRate 10/00:00:02 02:00:00 "Stop connecting frequently"
BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00 BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00
BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99 BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99
BanControlsACLs all allow user root BanControlsACLs all allow user root
@@ -4742,7 +4742,7 @@ no
</content> </content>
</file> </file>
<file name="/etc/pure-ftpd/db/mysql.conf" chown="root:0" <file name="/etc/pure-ftpd/db/mysql.conf" chown="root:0"
chmod="0644" backup="true"> chmod="0640" backup="true">
<content><![CDATA[ <content><![CDATA[
############################################## ##############################################
# # # #

View File

@@ -3880,7 +3880,7 @@ MaxLoginAttempts 3
BanLog /var/log/proftpd/ban.log BanLog /var/log/proftpd/ban.log
BanTable /etc/proftpd/ban.tab BanTable /etc/proftpd/ban.tab
BanMessage "User %u was banned." BanMessage "User %u was banned."
BanOnEvent ClientConnectRate 5/00:00:02 12:00:00 "Stop connecting frequently" BanOnEvent ClientConnectRate 10/00:00:02 02:00:00 "Stop connecting frequently"
BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00 BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00
BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99 BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99
BanControlsACLs all allow user root BanControlsACLs all allow user root
@@ -3961,7 +3961,7 @@ no
</content> </content>
</file> </file>
<file name="/etc/pure-ftpd/db/mysql.conf" chown="root:0" <file name="/etc/pure-ftpd/db/mysql.conf" chown="root:0"
chmod="0644" backup="true"> chmod="0640" backup="true">
<content><![CDATA[ <content><![CDATA[
############################################## ##############################################
# # # #

View File

@@ -3872,7 +3872,7 @@ MaxLoginAttempts 3
BanLog /var/log/proftpd/ban.log BanLog /var/log/proftpd/ban.log
BanTable /etc/proftpd/ban.tab BanTable /etc/proftpd/ban.tab
BanMessage "User %u was banned." BanMessage "User %u was banned."
BanOnEvent ClientConnectRate 5/00:00:02 12:00:00 "Stop connecting frequently" BanOnEvent ClientConnectRate 10/00:00:02 02:00:00 "Stop connecting frequently"
BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00 BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00
BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99 BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99
BanControlsACLs all allow user root BanControlsACLs all allow user root
@@ -3953,7 +3953,7 @@ no
</content> </content>
</file> </file>
<file name="/etc/pure-ftpd/db/mysql.conf" chown="root:0" <file name="/etc/pure-ftpd/db/mysql.conf" chown="root:0"
chmod="0644" backup="true"> chmod="0640" backup="true">
<content><![CDATA[ <content><![CDATA[
############################################## ##############################################
# # # #

View File

@@ -2547,7 +2547,7 @@ MaxLoginAttempts 3
BanLog /var/log/proftpd/ban.log BanLog /var/log/proftpd/ban.log
BanTable /etc/proftpd/ban.tab BanTable /etc/proftpd/ban.tab
BanMessage "User %u was banned." BanMessage "User %u was banned."
BanOnEvent ClientConnectRate 5/00:00:02 12:00:00 "Stop connecting frequently" BanOnEvent ClientConnectRate 10/00:00:02 02:00:00 "Stop connecting frequently"
BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00 BanOnEvent MaxLoginAttempts 3/00:30:00 12:00:00
BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99 BanOnEvent AnonRejectPasswords 1/01:00:00 99:99:99
BanControlsACLs all allow user root BanControlsACLs all allow user root
@@ -2628,7 +2628,7 @@ no
</content> </content>
</file> </file>
<file name="/etc/pure-ftpd/db/mysql.conf" chown="root:0" <file name="/etc/pure-ftpd/db/mysql.conf" chown="root:0"
chmod="0644" backup="true"> chmod="0640" backup="true">
<content><![CDATA[ <content><![CDATA[
############################################## ##############################################
# # # #

View File

@@ -49,6 +49,7 @@ return [
'2fa_ga_desc' => 'Váš účet je nastaven tak, aby používal jednorázová hesla založená na čase prostřednictvím autentizační aplikace. Naskenujte níže uvedený QR kód pomocí požadované autentizační aplikace pro vygenerování kódů. Chcete-li deaktivovat, klikněte na "Deaktivovat 2FA"', '2fa_ga_desc' => 'Váš účet je nastaven tak, aby používal jednorázová hesla založená na čase prostřednictvím autentizační aplikace. Naskenujte níže uvedený QR kód pomocí požadované autentizační aplikace pro vygenerování kódů. Chcete-li deaktivovat, klikněte na "Deaktivovat 2FA"',
'2fa_not_activated' => 'Dvoufázové ověřování není povoleno', '2fa_not_activated' => 'Dvoufázové ověřování není povoleno',
'2fa_not_activated_for_user' => 'Dvoufaktorové ověření není pro aktuálního uživatele povoleno', '2fa_not_activated_for_user' => 'Dvoufaktorové ověření není pro aktuálního uživatele povoleno',
'type_2fa' => 'Stav 2FA',
], ],
'admin' => [ 'admin' => [
'overview' => 'Přehled', 'overview' => 'Přehled',
@@ -681,6 +682,8 @@ return [
'title' => 'Použít greylisting', 'title' => 'Použít greylisting',
'description' => 'Příchozí e-maily budou chráněny <a href="https://en.wikipedia.org/wiki/Greylisting_(email)" target="_blank">greylisting</a>.<br/>Výchozí: ano' 'description' => 'Příchozí e-maily budou chráněny <a href="https://en.wikipedia.org/wiki/Greylisting_(email)" target="_blank">greylisting</a>.<br/>Výchozí: ano'
], ],
'required_spf_dns' => 'Požadovaný SPF DNS záznam',
'required_dmarc_dns' => 'Požadovaný DMARC DNS záznam',
'required_dkim_dns' => 'Požadovaný DKIM DNS záznam', 'required_dkim_dns' => 'Požadovaný DKIM DNS záznam',
], ],
'dns' => [ 'dns' => [
@@ -782,6 +785,7 @@ return [
'hsts' => 'HSTS povoleno', 'hsts' => 'HSTS povoleno',
'aliasdomainid' => 'ID aliasové domény', 'aliasdomainid' => 'ID aliasové domény',
'nodomainsassignedbyadmin' => 'Váš účet nemá v současné době přiřazeny žádné (aktivní) domény. Pokud si myslíte, že je to špatné, kontaktujte svého správce.', 'nodomainsassignedbyadmin' => 'Váš účet nemá v současné době přiřazeny žádné (aktivní) domény. Pokud si myslíte, že je to špatné, kontaktujte svého správce.',
'email_only' => 'Jen emaily',
], ],
'emails' => [ 'emails' => [
'description' => 'Zde můžete vytvářet a měnit své e-mailové adresy.<br />Účet je jako poštovní schránka před vaším domem. Pokud vám někdo pošle e-mail, bude vypuštěn na účet.<br /><br />Chcete-li stáhnout své e-maily, použijte následující nastavení ve vašem poštovním programu: (Data v <i>kurzívě</i> musí být změněna na ekvivalenty, které jste zadali!<br />Hostitelské jméno: <b><i>doménové jméno</i></b><br />Uživatelské jméno: <b><i>jméno účtu / e-mailová adresa</i></b><br />heslo: <b><i>heslo, které jste zvolili</i></b>', 'description' => 'Zde můžete vytvářet a měnit své e-mailové adresy.<br />Účet je jako poštovní schránka před vaším domem. Pokud vám někdo pošle e-mail, bude vypuštěn na účet.<br /><br />Chcete-li stáhnout své e-maily, použijte následující nastavení ve vašem poštovním programu: (Data v <i>kurzívě</i> musí být změněna na ekvivalenty, které jste zadali!<br />Hostitelské jméno: <b><i>doménové jméno</i></b><br />Uživatelské jméno: <b><i>jméno účtu / e-mailová adresa</i></b><br />heslo: <b><i>heslo, které jste zvolili</i></b>',
@@ -1101,6 +1105,7 @@ return [
'combination_not_found' => 'Kombinace uživatele a e-mailové adresy nenalezena.', 'combination_not_found' => 'Kombinace uživatele a e-mailové adresy nenalezena.',
'2fa' => 'Dvoufázové ověření (2FA)', '2fa' => 'Dvoufázové ověření (2FA)',
'2facode' => 'Zadejte prosím 2FA kód', '2facode' => 'Zadejte prosím 2FA kód',
'2faremember' => 'Důvěřovat prohlížeči',
], ],
'mails' => [ 'mails' => [
'pop_success' => [ 'pop_success' => [
@@ -1227,7 +1232,7 @@ Ach upřímně, váš správce',
], ],
'opcacheinfo' => [ 'opcacheinfo' => [
'generaltitle' => 'Obecné informace', 'generaltitle' => 'Obecné informace',
'resetcache' => 'Resetövat OPcache', 'resetcache' => 'Resetovat OPcache',
'version' => 'Verze OPCache', 'version' => 'Verze OPCache',
'phpversion' => 'Verze PHP', 'phpversion' => 'Verze PHP',
'runtimeconf' => 'Spustitelná konfigurace', 'runtimeconf' => 'Spustitelná konfigurace',
@@ -1941,7 +1946,7 @@ Ach upřímně, váš správce',
], ],
'documentroot_use_default_value' => [ 'documentroot_use_default_value' => [
'title' => 'Použít název domény jako výchozí hodnotu pro cestu kořenového adresáře dokumentu', 'title' => 'Použít název domény jako výchozí hodnotu pro cestu kořenového adresáře dokumentu',
'description' => 'Pokud je povoleno a cesta DocumentRoot je prázdná, výchozí hodnotou bude název (sub)domény.<br /><br />Příklady: <br />/var/customers/customer_name/example.com/<br />/var /customers/customer_name/subdomain.example.com/', 'description' => 'Pokud je povoleno a cesta DocumentRoot je prázdná, výchozí hodnotou bude název (sub)domény.<br /><br />Příklady: <br />/var/customers/webs/customer_name/example.com/<br />/var/customers/webs/customer_name/subdomain.example.com/',
], ],
'panel_phpconfigs_hidesubdomains' => [ 'panel_phpconfigs_hidesubdomains' => [
'title' => 'Skrýt subdomény v PHP-konfiguračním přehledu', 'title' => 'Skrýt subdomény v PHP-konfiguračním přehledu',

View File

@@ -1824,7 +1824,7 @@ Vielen Dank, Ihr Administrator',
], ],
'documentroot_use_default_value' => [ 'documentroot_use_default_value' => [
'title' => 'Verwende Domainnamen im Documentroot', 'title' => 'Verwende Domainnamen im Documentroot',
'description' => 'Wenn aktiviert wird dem standard Documentroot zusätzlich der Domain-Name angehängt.<br /><br />Beispiel:<br />/var/customers/customer_name/example.tld/<br />/var/customers/customer_name/subdomain.example.tld/', 'description' => 'Wenn aktiviert wird dem standard Documentroot zusätzlich der Domain-Name angehängt.<br /><br />Beispiel:<br />/var/customers/webs/customer_name/example.tld/<br />/var/customers/webs/customer_name/subdomain.example.tld/',
], ],
'panel_phpconfigs_hidesubdomains' => [ 'panel_phpconfigs_hidesubdomains' => [
'title' => 'Verstecke Subdomains in PHP-Konfigurations-Übersicht', 'title' => 'Verstecke Subdomains in PHP-Konfigurations-Übersicht',

View File

@@ -1946,7 +1946,7 @@ Yours sincerely, your administrator',
], ],
'documentroot_use_default_value' => [ 'documentroot_use_default_value' => [
'title' => 'Use domain name as default value for DocumentRoot path', 'title' => 'Use domain name as default value for DocumentRoot path',
'description' => 'If enabled and DocumentRoot path is empty, default value will be the (sub)domain name.<br /><br />Examples: <br />/var/customers/customer_name/example.com/<br />/var/customers/customer_name/subdomain.example.com/', 'description' => 'If enabled and DocumentRoot path is empty, default value will be the (sub)domain name.<br /><br />Examples: <br />/var/customers/webs/customer_name/example.com/<br />/var/customers/webs/customer_name/subdomain.example.com/',
], ],
'panel_phpconfigs_hidesubdomains' => [ 'panel_phpconfigs_hidesubdomains' => [
'title' => 'Hide subdomains in PHP-configuration overview', 'title' => 'Hide subdomains in PHP-configuration overview',

10
package-lock.json generated
View File

@@ -9,7 +9,7 @@
"@fortawesome/fontawesome-free": "^6.4.2", "@fortawesome/fontawesome-free": "^6.4.2",
"@popperjs/core": "^2.11.8", "@popperjs/core": "^2.11.8",
"@vitejs/plugin-vue": "^4.0.0", "@vitejs/plugin-vue": "^4.0.0",
"axios": "^1.6.0", "axios": "^1.7.4",
"bootstrap": "^5.3.2", "bootstrap": "^5.3.2",
"chart.js": "^4.4.0", "chart.js": "^4.4.0",
"jquery": "^3.6.1", "jquery": "^3.6.1",
@@ -580,12 +580,12 @@
"dev": true "dev": true
}, },
"node_modules/axios": { "node_modules/axios": {
"version": "1.6.0", "version": "1.7.4",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz",
"integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==", "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"follow-redirects": "^1.15.0", "follow-redirects": "^1.15.6",
"form-data": "^4.0.0", "form-data": "^4.0.0",
"proxy-from-env": "^1.1.0" "proxy-from-env": "^1.1.0"
} }

View File

@@ -9,7 +9,7 @@
"@fortawesome/fontawesome-free": "^6.4.2", "@fortawesome/fontawesome-free": "^6.4.2",
"@popperjs/core": "^2.11.8", "@popperjs/core": "^2.11.8",
"@vitejs/plugin-vue": "^4.0.0", "@vitejs/plugin-vue": "^4.0.0",
"axios": "^1.6.0", "axios": "^1.7.4",
"bootstrap": "^5.3.2", "bootstrap": "^5.3.2",
"chart.js": "^4.4.0", "chart.js": "^4.4.0",
"jquery": "^3.6.1", "jquery": "^3.6.1",

View File

@@ -41,8 +41,9 @@ export default function () {
$('#speciallogfilenote').remove(); $('#speciallogfilenote').remove();
$('#speciallogfile').removeClass('is-invalid'); $('#speciallogfile').removeClass('is-invalid');
$('#speciallogverified').val(0); $('#speciallogverified').val(0);
const cFileName = window.location.pathname.substring(window.location.pathname.lastIndexOf("/")+1);
$.ajax({ $.ajax({
url: window.location.pathname.substring(1) + "?page=overview&action=jqSpeciallogfileNote", url: cFileName + "?page=overview&action=jqSpeciallogfileNote",
type: "POST", type: "POST",
data: { data: {
id: $('input[name=id]').val(), newval: +$('#speciallogfile').is(':checked') id: $('input[name=id]').val(), newval: +$('#speciallogfile').is(':checked')