diff --git a/.github/SECURITY.md b/.github/SECURITY.md
new file mode 100644
index 000000000..c2201a628
--- /dev/null
+++ b/.github/SECURITY.md
@@ -0,0 +1,32 @@
+# Security Policy
+
+## Supported Versions
+
+Only the [latest version](https://github.com/BookStackApp/BookStack/releases) of BookStack is supported.
+We generally don't support older versions of BookStack due to maintenance effort and
+since we aim to provide a fairly stable upgrade path for new versions.
+
+## Security Notifications
+
+If you'd like to be notified of new potential security concerns you can [sign-up to the BookStack security mailing list](https://updates.bookstackapp.com/signup/bookstack-security-updates).
+
+## Reporting a Vulnerability
+
+If you've found an issue that likely has no impact to existing users (For example, in a development-only branch)
+feel free to raise it via a standard GitHub bug report issue.
+
+If the issue could have a security impact to BookStack instances, please use one of the below
+methods to report the vulnerability:
+
+- Directly contact the lead maintainer [@ssddanbrown](https://github.com/ssddanbrown).
+ - You will need to login to be able to see the email address on the [GitHub profile page](https://github.com/ssddanbrown).
+ - Alternatively you can send a DM via Twitter to [@ssddanbrown](https://twitter.com/ssddanbrown).
+- [Disclose via huntr.dev](https://huntr.dev/bounties/disclose)
+ - Bounties may be available to you through this platform.
+ - Be sure to use `https://github.com/BookStackApp/BookStack` as the repository URL.
+
+Please be patient while the vulnerability is being reviewed. Deploying the fix to address the vulnerability
+can often take a little time due to the amount of preparation required, to ensure the vulnerability has
+been covered, and to create the content required to adequately notify the user-base.
+
+Thank you for keeping BookStack instances safe!
\ No newline at end of file
diff --git a/app/Uploads/ImageRepo.php b/app/Uploads/ImageRepo.php
index c4205e357..e76a0a97d 100644
--- a/app/Uploads/ImageRepo.php
+++ b/app/Uploads/ImageRepo.php
@@ -38,7 +38,7 @@ class ImageRepo
*/
public function imageExtensionSupported(string $extension): bool
{
- return in_array(trim($extension, '. \t\n\r\0\x0B'), static::$supportedExtensions);
+ return in_array(trim($extension, ". \t\n\r\0\x0B"), static::$supportedExtensions);
}
/**
diff --git a/composer.lock b/composer.lock
index f8a13ba8b..318544c5a 100644
--- a/composer.lock
+++ b/composer.lock
@@ -58,16 +58,16 @@
},
{
"name": "aws/aws-sdk-php",
- "version": "3.198.6",
+ "version": "3.199.3",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
- "reference": "821b8db50dd39be8ec94f286050a500b5f8a0142"
+ "reference": "132a1148ebb63d04023837bcf9a36f49b308a0bd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/821b8db50dd39be8ec94f286050a500b5f8a0142",
- "reference": "821b8db50dd39be8ec94f286050a500b5f8a0142",
+ "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/132a1148ebb63d04023837bcf9a36f49b308a0bd",
+ "reference": "132a1148ebb63d04023837bcf9a36f49b308a0bd",
"shasum": ""
},
"require": {
@@ -77,7 +77,7 @@
"ext-simplexml": "*",
"guzzlehttp/guzzle": "^5.3.3|^6.2.1|^7.0",
"guzzlehttp/promises": "^1.4.0",
- "guzzlehttp/psr7": "^1.7.0",
+ "guzzlehttp/psr7": "^1.7.0|^2.0",
"mtdowling/jmespath.php": "^2.6",
"php": ">=5.5"
},
@@ -143,9 +143,9 @@
"support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues",
- "source": "https://github.com/aws/aws-sdk-php/tree/3.198.6"
+ "source": "https://github.com/aws/aws-sdk-php/tree/3.199.3"
},
- "time": "2021-10-15T18:38:53+00:00"
+ "time": "2021-10-25T18:17:28+00:00"
},
{
"name": "bacon/bacon-qr-code",
@@ -725,34 +725,30 @@
},
{
"name": "doctrine/inflector",
- "version": "2.0.3",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210"
+ "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210",
- "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
+ "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^7.0",
- "phpstan/phpstan": "^0.11",
- "phpstan/phpstan-phpunit": "^0.11",
- "phpstan/phpstan-strict-rules": "^0.11",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ "doctrine/coding-standard": "^8.2",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpstan/phpstan-strict-rules": "^0.12",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
+ "vimeo/psalm": "^4.10"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
"autoload": {
"psr-4": {
"Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
@@ -800,7 +796,7 @@
],
"support": {
"issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.0.x"
+ "source": "https://github.com/doctrine/inflector/tree/2.0.4"
},
"funding": [
{
@@ -816,7 +812,7 @@
"type": "tidelift"
}
],
- "time": "2020-05-29T15:13:26+00:00"
+ "time": "2021-10-22T20:16:43+00:00"
},
{
"name": "doctrine/lexer",
@@ -1233,24 +1229,25 @@
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.3.0",
+ "version": "7.4.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "7008573787b430c1c1f650e3722d9bba59967628"
+ "reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628",
- "reference": "7008573787b430c1c1f650e3722d9bba59967628",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/868b3571a039f0ebc11ac8f344f4080babe2cb94",
+ "reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94",
"shasum": ""
},
"require": {
"ext-json": "*",
- "guzzlehttp/promises": "^1.4",
- "guzzlehttp/psr7": "^1.7 || ^2.0",
+ "guzzlehttp/promises": "^1.5",
+ "guzzlehttp/psr7": "^1.8.3 || ^2.1",
"php": "^7.2.5 || ^8.0",
- "psr/http-client": "^1.0"
+ "psr/http-client": "^1.0",
+ "symfony/deprecation-contracts": "^2.2"
},
"provide": {
"psr/http-client-implementation": "1.0"
@@ -1260,7 +1257,7 @@
"ext-curl": "*",
"php-http/client-integration-tests": "^3.0",
"phpunit/phpunit": "^8.5.5 || ^9.3.5",
- "psr/log": "^1.1"
+ "psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
"ext-curl": "Required for CURL handler support",
@@ -1270,7 +1267,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "7.3-dev"
+ "dev-master": "7.4-dev"
}
},
"autoload": {
@@ -1286,19 +1283,43 @@
"MIT"
],
"authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
+ {
+ "name": "Jeremy Lindblom",
+ "email": "jeremeamia@gmail.com",
+ "homepage": "https://github.com/jeremeamia"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
{
"name": "Márk Sági-Kazár",
"email": "mark.sagikazar@gmail.com",
- "homepage": "https://sagikazarmark.hu"
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
}
],
"description": "Guzzle is a PHP HTTP client library",
- "homepage": "http://guzzlephp.org/",
"keywords": [
"client",
"curl",
@@ -1312,7 +1333,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.3.0"
+ "source": "https://github.com/guzzle/guzzle/tree/7.4.0"
},
"funding": [
{
@@ -1324,28 +1345,24 @@
"type": "github"
},
{
- "url": "https://github.com/alexeyshockov",
- "type": "github"
- },
- {
- "url": "https://github.com/gmponos",
- "type": "github"
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
+ "type": "tidelift"
}
],
- "time": "2021-03-23T11:33:13+00:00"
+ "time": "2021-10-18T09:52:00+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "1.5.0",
+ "version": "1.5.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0"
+ "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/136a635e2b4a49b9d79e9c8fee267ffb257fdba0",
- "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
+ "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
"shasum": ""
},
"require": {
@@ -1400,7 +1417,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/1.5.0"
+ "source": "https://github.com/guzzle/promises/tree/1.5.1"
},
"funding": [
{
@@ -1416,33 +1433,36 @@
"type": "tidelift"
}
],
- "time": "2021-10-07T13:05:22+00:00"
+ "time": "2021-10-22T20:56:57+00:00"
},
{
"name": "guzzlehttp/psr7",
- "version": "1.8.3",
+ "version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85"
+ "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/1afdd860a2566ed3c2b0b4a3de6e23434a79ec85",
- "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/089edd38f5b8abba6cb01567c2a8aaa47cec4c72",
+ "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72",
"shasum": ""
},
"require": {
- "php": ">=5.4.0",
- "psr/http-message": "~1.0",
- "ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0",
+ "ralouphie/getallheaders": "^3.0"
},
"provide": {
+ "psr/http-factory-implementation": "1.0",
"psr/http-message-implementation": "1.0"
},
"require-dev": {
- "ext-zlib": "*",
- "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10"
+ "bamarni/composer-bin-plugin": "^1.4.1",
+ "http-interop/http-factory-tests": "^0.9",
+ "phpunit/phpunit": "^8.5.8 || ^9.3.10"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
@@ -1450,16 +1470,13 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.7-dev"
+ "dev-master": "2.1-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\Psr7\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1495,6 +1512,11 @@
"name": "Tobias Schultze",
"email": "webmaster@tubo-world.de",
"homepage": "https://github.com/Tobion"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
}
],
"description": "PSR-7 message implementation that also provides common utility methods",
@@ -1510,7 +1532,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/1.8.3"
+ "source": "https://github.com/guzzle/psr7/tree/2.1.0"
},
"funding": [
{
@@ -1526,7 +1548,7 @@
"type": "tidelift"
}
],
- "time": "2021-10-05T13:56:00+00:00"
+ "time": "2021-10-06T17:43:30+00:00"
},
{
"name": "intervention/image",
@@ -1614,24 +1636,28 @@
},
{
"name": "knplabs/knp-snappy",
- "version": "v1.2.1",
+ "version": "v1.3.1",
"source": {
"type": "git",
"url": "https://github.com/KnpLabs/snappy.git",
- "reference": "7bac60fb729147b7ccd8532c07df3f52a4afa8a4"
+ "reference": "349c2e872bbeb15dff825a17dd92ea9c6ae4120e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/KnpLabs/snappy/zipball/7bac60fb729147b7ccd8532c07df3f52a4afa8a4",
- "reference": "7bac60fb729147b7ccd8532c07df3f52a4afa8a4",
+ "url": "https://api.github.com/repos/KnpLabs/snappy/zipball/349c2e872bbeb15dff825a17dd92ea9c6ae4120e",
+ "reference": "349c2e872bbeb15dff825a17dd92ea9c6ae4120e",
"shasum": ""
},
"require": {
"php": ">=7.1",
- "psr/log": "^1.0",
+ "psr/log": "^1.0||^2.0||^3.0",
"symfony/process": "~3.4||~4.3||~5.0"
},
"require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.16",
+ "pedrotroller/php-cs-custom-fixer": "^2.19",
+ "phpstan/phpstan": "^0.12.7",
+ "phpstan/phpstan-phpunit": "^0.12.6",
"phpunit/phpunit": "~7.4"
},
"suggest": {
@@ -1658,7 +1684,7 @@
],
"authors": [
{
- "name": "KnpLabs Team",
+ "name": "KNP Labs Team",
"homepage": "http://knplabs.com"
},
{
@@ -1666,7 +1692,7 @@
"homepage": "http://github.com/KnpLabs/snappy/contributors"
}
],
- "description": "PHP5 library allowing thumbnail, snapshot or PDF generation from a url or a html page. Wrapper for wkhtmltopdf/wkhtmltoimage.",
+ "description": "PHP library allowing thumbnail, snapshot or PDF generation from a url or a html page. Wrapper for wkhtmltopdf/wkhtmltoimage.",
"homepage": "http://github.com/KnpLabs/snappy",
"keywords": [
"knp",
@@ -1678,22 +1704,22 @@
],
"support": {
"issues": "https://github.com/KnpLabs/snappy/issues",
- "source": "https://github.com/KnpLabs/snappy/tree/master"
+ "source": "https://github.com/KnpLabs/snappy/tree/v1.3.1"
},
- "time": "2020-01-20T08:30:30+00:00"
+ "time": "2021-10-22T11:40:26+00:00"
},
{
"name": "laravel/framework",
- "version": "v6.20.35",
+ "version": "v6.20.36",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "5e55aa4063b9f7cf3249bfebcc37a6fbad4f159a"
+ "reference": "10f6bfaec9efb68aa88d7196b8b1b162d83040ae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/5e55aa4063b9f7cf3249bfebcc37a6fbad4f159a",
- "reference": "5e55aa4063b9f7cf3249bfebcc37a6fbad4f159a",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/10f6bfaec9efb68aa88d7196b8b1b162d83040ae",
+ "reference": "10f6bfaec9efb68aa88d7196b8b1b162d83040ae",
"shasum": ""
},
"require": {
@@ -1833,7 +1859,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2021-10-05T14:05:19+00:00"
+ "time": "2021-10-19T13:59:55+00:00"
},
{
"name": "laravel/socialite",
@@ -3598,6 +3624,61 @@
},
"time": "2020-06-29T06:28:15+00:00"
},
+ {
+ "name": "psr/http-factory",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-factory.git",
+ "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
+ "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0.0",
+ "psr/http-message": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for PSR-7 HTTP message factories",
+ "keywords": [
+ "factory",
+ "http",
+ "message",
+ "psr",
+ "psr-17",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-factory/tree/master"
+ },
+ "time": "2019-04-30T12:38:16+00:00"
+ },
{
"name": "psr/http-message",
"version": "1.0.1",
@@ -4359,16 +4440,16 @@
},
{
"name": "swiftmailer/swiftmailer",
- "version": "v6.2.7",
+ "version": "v6.3.0",
"source": {
"type": "git",
"url": "https://github.com/swiftmailer/swiftmailer.git",
- "reference": "15f7faf8508e04471f666633addacf54c0ab5933"
+ "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/15f7faf8508e04471f666633addacf54c0ab5933",
- "reference": "15f7faf8508e04471f666633addacf54c0ab5933",
+ "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c",
+ "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c",
"shasum": ""
},
"require": {
@@ -4380,7 +4461,7 @@
},
"require-dev": {
"mockery/mockery": "^1.0",
- "symfony/phpunit-bridge": "^4.4|^5.0"
+ "symfony/phpunit-bridge": "^4.4|^5.4"
},
"suggest": {
"ext-intl": "Needed to support internationalized email addresses"
@@ -4418,7 +4499,7 @@
],
"support": {
"issues": "https://github.com/swiftmailer/swiftmailer/issues",
- "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.2.7"
+ "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0"
},
"funding": [
{
@@ -4430,7 +4511,7 @@
"type": "tidelift"
}
],
- "time": "2021-03-09T12:30:35+00:00"
+ "time": "2021-10-18T15:26:12+00:00"
},
{
"name": "symfony/console",
@@ -6615,23 +6696,23 @@
"packages-dev": [
{
"name": "barryvdh/laravel-debugbar",
- "version": "v3.6.2",
+ "version": "v3.6.4",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-debugbar.git",
- "reference": "70b89754913fd89fef16d0170a91dbc2a5cd633a"
+ "reference": "3c2d678269ba60e178bcd93e36f6a91c36b727f1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/70b89754913fd89fef16d0170a91dbc2a5cd633a",
- "reference": "70b89754913fd89fef16d0170a91dbc2a5cd633a",
+ "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/3c2d678269ba60e178bcd93e36f6a91c36b727f1",
+ "reference": "3c2d678269ba60e178bcd93e36f6a91c36b727f1",
"shasum": ""
},
"require": {
"illuminate/routing": "^6|^7|^8",
"illuminate/session": "^6|^7|^8",
"illuminate/support": "^6|^7|^8",
- "maximebf/debugbar": "^1.16.3",
+ "maximebf/debugbar": "^1.17.2",
"php": ">=7.2",
"symfony/debug": "^4.3|^5",
"symfony/finder": "^4.3|^5"
@@ -6645,7 +6726,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.5-dev"
+ "dev-master": "3.6-dev"
},
"laravel": {
"providers": [
@@ -6684,7 +6765,7 @@
],
"support": {
"issues": "https://github.com/barryvdh/laravel-debugbar/issues",
- "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.6.2"
+ "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.6.4"
},
"funding": [
{
@@ -6696,7 +6777,7 @@
"type": "github"
}
],
- "time": "2021-06-14T14:29:26+00:00"
+ "time": "2021-10-21T10:57:31+00:00"
},
{
"name": "barryvdh/laravel-ide-helper",
@@ -7081,16 +7162,16 @@
},
{
"name": "composer/semver",
- "version": "3.2.5",
+ "version": "3.2.6",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
- "reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9"
+ "reference": "83e511e247de329283478496f7a1e114c9517506"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/31f3ea725711245195f62e54ffa402d8ef2fdba9",
- "reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9",
+ "url": "https://api.github.com/repos/composer/semver/zipball/83e511e247de329283478496f7a1e114c9517506",
+ "reference": "83e511e247de329283478496f7a1e114c9517506",
"shasum": ""
},
"require": {
@@ -7142,7 +7223,7 @@
"support": {
"irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.2.5"
+ "source": "https://github.com/composer/semver/tree/3.2.6"
},
"funding": [
{
@@ -7158,7 +7239,7 @@
"type": "tidelift"
}
],
- "time": "2021-05-24T12:41:47+00:00"
+ "time": "2021-10-25T11:34:17+00:00"
},
{
"name": "composer/spdx-licenses",
@@ -7560,21 +7641,21 @@
},
{
"name": "maximebf/debugbar",
- "version": "v1.17.1",
+ "version": "v1.17.2",
"source": {
"type": "git",
"url": "https://github.com/maximebf/php-debugbar.git",
- "reference": "0a3532556be0145603f8a9de23e76dc28eed7054"
+ "reference": "3541f09f09c003c4a9ff7ddb0eb3361a7f14d418"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/0a3532556be0145603f8a9de23e76dc28eed7054",
- "reference": "0a3532556be0145603f8a9de23e76dc28eed7054",
+ "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/3541f09f09c003c4a9ff7ddb0eb3361a7f14d418",
+ "reference": "3541f09f09c003c4a9ff7ddb0eb3361a7f14d418",
"shasum": ""
},
"require": {
"php": "^7.1|^8",
- "psr/log": "^1.0",
+ "psr/log": "^1|^2|^3",
"symfony/var-dumper": "^2.6|^3|^4|^5"
},
"require-dev": {
@@ -7619,9 +7700,9 @@
],
"support": {
"issues": "https://github.com/maximebf/php-debugbar/issues",
- "source": "https://github.com/maximebf/php-debugbar/tree/v1.17.1"
+ "source": "https://github.com/maximebf/php-debugbar/tree/v1.17.2"
},
- "time": "2021-08-01T09:19:02+00:00"
+ "time": "2021-10-18T09:39:00+00:00"
},
{
"name": "mockery/mockery",
@@ -7975,16 +8056,16 @@
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "5.2.2",
+ "version": "5.3.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556"
+ "reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556",
- "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
+ "reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
"shasum": ""
},
"require": {
@@ -7995,7 +8076,8 @@
"webmozart/assert": "^1.9.1"
},
"require-dev": {
- "mockery/mockery": "~1.3.2"
+ "mockery/mockery": "~1.3.2",
+ "psalm/phar": "^4.8"
},
"type": "library",
"extra": {
@@ -8025,9 +8107,9 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master"
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
},
- "time": "2020-09-03T19:13:55+00:00"
+ "time": "2021-10-19T17:43:47+00:00"
},
{
"name": "phpdocumentor/type-resolver",
@@ -9470,7 +9552,6 @@
"type": "github"
}
],
- "abandoned": true,
"time": "2020-09-28T06:45:17+00:00"
},
{
diff --git a/readme.md b/readme.md
index 1ab54de6e..17ac9641b 100644
--- a/readme.md
+++ b/readme.md
@@ -157,7 +157,7 @@ Security information for administering a BookStack instance can be found on the
If you'd like to be notified of new potential security concerns you can [sign-up to the BookStack security mailing list](https://updates.bookstackapp.com/signup/bookstack-security-updates).
-If you would like to report a security concern in a more confidential manner than via a GitHub issue, You can directly email the lead maintainer [ssddanbrown](https://github.com/ssddanbrown). You will need to login to be able to see the email address on the [GitHub profile page](https://github.com/ssddanbrown). Alternatively you can send a DM via twitter to [@ssddanbrown](https://twitter.com/ssddanbrown).
+If you would like to report a security concern, details of doing so can [can be found here](https://github.com/BookStackApp/BookStack/blob/master/.github/SECURITY.md).
## ♿ Accessibility
diff --git a/resources/lang/ar/settings.php b/resources/lang/ar/settings.php
index b4ccd9482..6e15a5f06 100755
--- a/resources/lang/ar/settings.php
+++ b/resources/lang/ar/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/bg/settings.php b/resources/lang/bg/settings.php
index e6afe7101..f3c036ee8 100644
--- a/resources/lang/bg/settings.php
+++ b/resources/lang/bg/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/bs/settings.php b/resources/lang/bs/settings.php
index 46df0d07d..8c35d6849 100644
--- a/resources/lang/bs/settings.php
+++ b/resources/lang/bs/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/ca/settings.php b/resources/lang/ca/settings.php
index 74e692798..086f59962 100755
--- a/resources/lang/ca/settings.php
+++ b/resources/lang/ca/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/cs/settings.php b/resources/lang/cs/settings.php
index b2e840044..cefcc0223 100644
--- a/resources/lang/cs/settings.php
+++ b/resources/lang/cs/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/da/settings.php b/resources/lang/da/settings.php
index 804a67bba..5d39e8a66 100644
--- a/resources/lang/da/settings.php
+++ b/resources/lang/da/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'Hebraisk',
'hr' => 'Hrvatski',
diff --git a/resources/lang/de/settings.php b/resources/lang/de/settings.php
index 5d6c19d10..9bd7133f6 100644
--- a/resources/lang/de/settings.php
+++ b/resources/lang/de/settings.php
@@ -251,7 +251,7 @@ Hinweis: Benutzer können ihre E-Mail Adresse nach erfolgreicher Registrierung
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Estnisch',
'fr' => 'Français',
'he' => 'Hebräisch',
'hr' => 'Hrvatski',
diff --git a/resources/lang/de_informal/settings.php b/resources/lang/de_informal/settings.php
index 8fdae9863..2e19ddae0 100644
--- a/resources/lang/de_informal/settings.php
+++ b/resources/lang/de_informal/settings.php
@@ -251,7 +251,7 @@ Hinweis: Benutzer können ihre E-Mail Adresse nach erfolgreicher Registrierung
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Estnisch',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/en/settings.php b/resources/lang/en/settings.php
index 46df0d07d..8c35d6849 100755
--- a/resources/lang/en/settings.php
+++ b/resources/lang/en/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/es/settings.php b/resources/lang/es/settings.php
index 81416e70e..0eadb1da0 100644
--- a/resources/lang/es/settings.php
+++ b/resources/lang/es/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/es_AR/settings.php b/resources/lang/es_AR/settings.php
index 46f72fa6b..3abbd8519 100644
--- a/resources/lang/es_AR/settings.php
+++ b/resources/lang/es_AR/settings.php
@@ -249,7 +249,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/et/entities.php b/resources/lang/et/entities.php
index 0fabc32df..e7b8149c7 100644
--- a/resources/lang/et/entities.php
+++ b/resources/lang/et/entities.php
@@ -240,9 +240,9 @@ return [
'start_b' => ':userName alustas selle lehe muutmist',
'time_a' => 'lehe viimasest muutmisest alates',
'time_b' => 'viimase :minCount minuti jooksul',
- 'message' => ':start :time. Take care not to overwrite each other\'s updates!',
+ 'message' => ':start :time. Ärge teineteise muudatusi üle kirjutage!',
],
- 'pages_draft_discarded' => 'Draft discarded, The editor has been updated with the current page content',
+ 'pages_draft_discarded' => 'Mustand ära visatud, redaktorisse laeti lehe värske sisu',
'pages_specific' => 'Specific Page',
'pages_is_template' => 'Page Template',
@@ -292,7 +292,7 @@ return [
'templates_prepend_content' => 'Lisa lehe sisu ette',
// Profile View
- 'profile_user_for_x' => 'User for :time',
+ 'profile_user_for_x' => 'Kasutaja olnud :time',
'profile_created_content' => 'Lisatud sisu',
'profile_not_created_pages' => ':userName ei ole ühtegi lehte lisanud',
'profile_not_created_chapters' => ':userName ei ole ühtegi peatükki lisanud',
diff --git a/resources/lang/et/settings.php b/resources/lang/et/settings.php
index bb2dba47c..fa89325b1 100644
--- a/resources/lang/et/settings.php
+++ b/resources/lang/et/settings.php
@@ -66,7 +66,7 @@ return [
'reg_email_confirmation_toggle' => 'Nõua e-posti aadressi kinnitamist',
'reg_confirm_email_desc' => 'Kui domeeni piirang on kasutusel, siis on e-posti aadressi kinnitamine nõutud ja seda seadet ignoreeritakse.',
'reg_confirm_restrict_domain' => 'Domeeni piirang',
- 'reg_confirm_restrict_domain_desc' => 'Sisesta komaga eraldatud nimekiri e-posti domeenidest, millega soovitud registreerumist piirata. Kasutajale saadetakse aadressi kinnitamiseks e-kiri, enne kui neil lubatakse rakendust kasutada.
Pane tähele, et kasutajad saavad pärast edukat registreerumist oma e-posti aadressi muuta.',
+ 'reg_confirm_restrict_domain_desc' => 'Sisesta komaga eraldatud nimekiri e-posti domeenidest, millega soovid registreerumist piirata. Kasutajale saadetakse aadressi kinnitamiseks e-kiri, enne kui neil lubatakse rakendust kasutada.
Pane tähele, et kasutajad saavad pärast edukat registreerumist oma e-posti aadressi muuta.',
'reg_confirm_restrict_domain_placeholder' => 'Piirangut ei ole',
// Maintenance settings
@@ -126,7 +126,7 @@ return [
// Role Settings
'roles' => 'Rollid',
- 'role_user_roles' => 'Kasutajate rollid',
+ 'role_user_roles' => 'Kasutaja rollid',
'role_create' => 'Lisa uus roll',
'role_create_success' => 'Roll on lisatud',
'role_delete' => 'Kustuta roll',
@@ -209,8 +209,8 @@ return [
'users_api_tokens_docs' => 'API dokumentatsioon',
'users_mfa' => 'Mitmeastmeline autentimine',
'users_mfa_desc' => 'Seadista mitmeastmeline autentimine, et oma kasutajakonto turvalisust tõsta.',
- 'users_mfa_x_methods' => ':count method configured|:count methods configured',
- 'users_mfa_configure' => 'Configure Methods',
+ 'users_mfa_x_methods' => ':count meetod seadistatud|:count meetodit seadistatud',
+ 'users_mfa_configure' => 'Seadista meetodid',
// API Tokens
'user_api_token_create' => 'Lisa API tunnus',
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/et/validation.php b/resources/lang/et/validation.php
index 7fde26c47..61e13a9f8 100644
--- a/resources/lang/et/validation.php
+++ b/resources/lang/et/validation.php
@@ -79,16 +79,16 @@ return [
'string' => ':attribute peab sisaldama vähemalt :min tähemärki.',
'array' => ':attribute peab sisaldama vähemalt :min elementi.',
],
- 'not_in' => 'The selected :attribute is invalid.',
- 'not_regex' => 'The :attribute format is invalid.',
- 'numeric' => 'The :attribute must be a number.',
- 'regex' => 'The :attribute format is invalid.',
+ 'not_in' => 'Valitud :attribute on vigane.',
+ 'not_regex' => ':attribute on vigases formaadis.',
+ 'numeric' => ':attribute peab olema arv.',
+ 'regex' => ':attribute on vigases formaadis.',
'required' => ':attribute on kohustuslik.',
'required_if' => ':attribute on kohustuslik, kui :other on :value.',
'required_with' => ':attribute on kohustuslik, kui :values on olemas.',
'required_with_all' => ':attribute on kohustuslik, kui :values on olemas.',
'required_without' => ':attribute on kohustuslik, kui :values ei ole olemas.',
- 'required_without_all' => 'The :attribute field is required when none of :values are present.',
+ 'required_without_all' => ':attribute on kohustuslik, kui :values on valimata.',
'same' => ':attribute ja :other peavad klappima.',
'safe_url' => 'Link ei pruugi olla turvaline.',
'size' => [
@@ -97,8 +97,8 @@ return [
'string' => ':attribute peab sisaldama :size tähemärki.',
'array' => ':attribute peab sisaldama :size elemente.',
],
- 'string' => 'The :attribute must be a string.',
- 'timezone' => 'The :attribute must be a valid zone.',
+ 'string' => ':attribute peab olema string.',
+ 'timezone' => ':attribute peab olema kehtiv ajavöönd.',
'totp' => 'Kood ei ole korrektne või on aegunud.',
'unique' => ':attribute on juba võetud.',
'url' => ':attribute on vigases formaadis.',
diff --git a/resources/lang/fa/settings.php b/resources/lang/fa/settings.php
index 46df0d07d..8c35d6849 100644
--- a/resources/lang/fa/settings.php
+++ b/resources/lang/fa/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/fr/settings.php b/resources/lang/fr/settings.php
index 18958c825..ddd5f64c7 100644
--- a/resources/lang/fr/settings.php
+++ b/resources/lang/fr/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Estonien',
'fr' => 'Français',
'he' => 'Hébreu',
'hr' => 'Hrvatski',
diff --git a/resources/lang/he/settings.php b/resources/lang/he/settings.php
index 499ec3cd3..fb59fa5cf 100755
--- a/resources/lang/he/settings.php
+++ b/resources/lang/he/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/hr/settings.php b/resources/lang/hr/settings.php
index 25b5e3186..afc867deb 100644
--- a/resources/lang/hr/settings.php
+++ b/resources/lang/hr/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/hu/settings.php b/resources/lang/hu/settings.php
index ea36c9641..b31b7d70c 100644
--- a/resources/lang/hu/settings.php
+++ b/resources/lang/hu/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/id/settings.php b/resources/lang/id/settings.php
index 95499acde..c803d48e3 100644
--- a/resources/lang/id/settings.php
+++ b/resources/lang/id/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/it/settings.php b/resources/lang/it/settings.php
index 3abb1c45e..2bce3b32c 100755
--- a/resources/lang/it/settings.php
+++ b/resources/lang/it/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/ja/settings.php b/resources/lang/ja/settings.php
index 4e2af0212..7023f77a4 100644
--- a/resources/lang/ja/settings.php
+++ b/resources/lang/ja/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/ko/settings.php b/resources/lang/ko/settings.php
index f9c0290a6..0ee6085dc 100755
--- a/resources/lang/ko/settings.php
+++ b/resources/lang/ko/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => '히브리어',
'hr' => 'Hrvatski',
diff --git a/resources/lang/lt/settings.php b/resources/lang/lt/settings.php
index c69694951..f951989d2 100644
--- a/resources/lang/lt/settings.php
+++ b/resources/lang/lt/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/lv/auth.php b/resources/lang/lv/auth.php
index 497509d54..9d857de04 100644
--- a/resources/lang/lv/auth.php
+++ b/resources/lang/lv/auth.php
@@ -81,32 +81,32 @@ return [
'mfa_setup_configured' => 'Divfaktoru autentifikācija jau ir nokonfigurēta',
'mfa_setup_reconfigure' => 'Mainīt 2FA konfigurāciju',
'mfa_setup_remove_confirmation' => 'Vai esi drošs, ka vēlies noņemt divfaktoru autentifikāciju?',
- 'mfa_setup_action' => 'Setup',
- 'mfa_backup_codes_usage_limit_warning' => 'You have less than 5 backup codes remaining, Please generate and store a new set before you run out of codes to prevent being locked out of your account.',
- 'mfa_option_totp_title' => 'Mobile App',
- 'mfa_option_totp_desc' => 'To use multi-factor authentication you\'ll need a mobile application that supports TOTP such as Google Authenticator, Authy or Microsoft Authenticator.',
- 'mfa_option_backup_codes_title' => 'Backup Codes',
- 'mfa_option_backup_codes_desc' => 'Securely store a set of one-time-use backup codes which you can enter to verify your identity.',
- 'mfa_gen_confirm_and_enable' => 'Confirm and Enable',
- 'mfa_gen_backup_codes_title' => 'Backup Codes Setup',
- 'mfa_gen_backup_codes_desc' => 'Store the below list of codes in a safe place. When accessing the system you\'ll be able to use one of the codes as a second authentication mechanism.',
- 'mfa_gen_backup_codes_download' => 'Download Codes',
- 'mfa_gen_backup_codes_usage_warning' => 'Each code can only be used once',
- 'mfa_gen_totp_title' => 'Mobile App Setup',
- 'mfa_gen_totp_desc' => 'To use multi-factor authentication you\'ll need a mobile application that supports TOTP such as Google Authenticator, Authy or Microsoft Authenticator.',
- 'mfa_gen_totp_scan' => 'Scan the QR code below using your preferred authentication app to get started.',
- 'mfa_gen_totp_verify_setup' => 'Verify Setup',
- 'mfa_gen_totp_verify_setup_desc' => 'Verify that all is working by entering a code, generated within your authentication app, in the input box below:',
- 'mfa_gen_totp_provide_code_here' => 'Provide your app generated code here',
- 'mfa_verify_access' => 'Verify Access',
- 'mfa_verify_access_desc' => 'Your user account requires you to confirm your identity via an additional level of verification before you\'re granted access. Verify using one of your configured methods to continue.',
- 'mfa_verify_no_methods' => 'No Methods Configured',
- 'mfa_verify_no_methods_desc' => 'No multi-factor authentication methods could be found for your account. You\'ll need to set up at least one method before you gain access.',
- 'mfa_verify_use_totp' => 'Verify using a mobile app',
- 'mfa_verify_use_backup_codes' => 'Verify using a backup code',
- 'mfa_verify_backup_code' => 'Backup Code',
- 'mfa_verify_backup_code_desc' => 'Enter one of your remaining backup codes below:',
- 'mfa_verify_backup_code_enter_here' => 'Enter backup code here',
- 'mfa_verify_totp_desc' => 'Enter the code, generated using your mobile app, below:',
- 'mfa_setup_login_notification' => 'Multi-factor method configured, Please now login again using the configured method.',
+ 'mfa_setup_action' => 'Iestatījumi',
+ 'mfa_backup_codes_usage_limit_warning' => 'Jums atlikuši mazāk kā 5 rezerves kodi. Lūdzu izveidojiet jaunu kodu komplektu pirms tie visi izlietoti, lai izvairītos no izslēgšanas no jūsu konta.',
+ 'mfa_option_totp_title' => 'Mobilā aplikācija',
+ 'mfa_option_totp_desc' => 'Lai lietotu vairākfaktoru autentifikāciju, jums būs nepieciešama mobilā aplikācija, kas atbalsta TOTP, piemēram, Google Authenticator, Authy vai Microsoft Authenticator.',
+ 'mfa_option_backup_codes_title' => 'Rezerves kodi',
+ 'mfa_option_backup_codes_desc' => 'Droši noglabājiet vienreizlietojamu rezerves kodu komplektu, ko varēsiet izmantot, lai verificētu savu identitāti.',
+ 'mfa_gen_confirm_and_enable' => 'Apstiprināt un ieslēgt',
+ 'mfa_gen_backup_codes_title' => 'Rezerves kodu iestatījumi',
+ 'mfa_gen_backup_codes_desc' => 'Noglabājiet zemāk esošo kodu sarakstu drošā vietā. Kad piekļūsiet sistēmai, jūs varēsiet izmantot vienu no kodiem kā papildus autentifikācijas mehānismu.',
+ 'mfa_gen_backup_codes_download' => 'Lejupielādēt kodus',
+ 'mfa_gen_backup_codes_usage_warning' => 'Katru kodu var izmantot tikai vienreiz',
+ 'mfa_gen_totp_title' => 'Mobilās aplikācijas iestatījumi',
+ 'mfa_gen_totp_desc' => 'Lai lietotu vairākfaktoru autentifikāciju, jums būs nepieciešama mobilā aplikācija, kas atbalsta TOTP, piemēram, Google Authenticator, Authy vai Microsoft Authenticator.',
+ 'mfa_gen_totp_scan' => 'Skenējiet zemāk esošo kvadrātkodu (QR) izmantojot savu autentifikācijas aplikāciju.',
+ 'mfa_gen_totp_verify_setup' => 'Verificēt iestatījumus',
+ 'mfa_gen_totp_verify_setup_desc' => 'Pārbaudiet, ka viss darbojas, zemāk esošajā laukā ievadot kodu, ko izveidojusi jūsu autentifikācijas aplikācijā:',
+ 'mfa_gen_totp_provide_code_here' => 'Norādīet jūsu aplikācijā izveidoto kodu šeit',
+ 'mfa_verify_access' => 'Verificēt piekļuvi',
+ 'mfa_verify_access_desc' => 'Jūsu lietotāja kontam nepieciešams verificēt jūsu identitāti ar papildus pārbaudes līmeni pirms piešķirta piekļuve. Verificējiet, izmantojot vienu no uzstādītajām metodēm, lai turpinātu.',
+ 'mfa_verify_no_methods' => 'Nav iestatīta neviena metode',
+ 'mfa_verify_no_methods_desc' => 'Jūsu kontam nav iestatīta neviena vairākfaktoru autentifikācijas metode. Jums būs nepieciešams iestatīt vismaz vienu metodi, lai iegūtu piekļuvi.',
+ 'mfa_verify_use_totp' => 'Verificēt, izmantojot mobilo aplikāciju',
+ 'mfa_verify_use_backup_codes' => 'Verificēt, izmantojot rezerves kodu',
+ 'mfa_verify_backup_code' => 'Rezerves kods',
+ 'mfa_verify_backup_code_desc' => 'Zemāk ievadiet vienu no jūsu atlikušajiem rezerves kodiem:',
+ 'mfa_verify_backup_code_enter_here' => 'Ievadiet rezerves kodu šeit',
+ 'mfa_verify_totp_desc' => 'Zemāk ievadiet kodu, kas izveidots mobilajā aplikācijā:',
+ 'mfa_setup_login_notification' => 'Vairākfaktoru metode iestatīta, lūdzu pieslēdzieties atkal izmantojot iestatīto metodi.',
];
\ No newline at end of file
diff --git a/resources/lang/lv/entities.php b/resources/lang/lv/entities.php
index 4cfca7aa5..20669016d 100644
--- a/resources/lang/lv/entities.php
+++ b/resources/lang/lv/entities.php
@@ -234,7 +234,7 @@ return [
'pages_initial_name' => 'Jauna lapa',
'pages_editing_draft_notification' => 'Jūs pašlaik veicat izmaiņas melnrakstā, kurš pēdējo reizi ir saglabāts :timeDiff.',
'pages_draft_edited_notification' => 'Šī lapa ir tikusi atjaunināta. Šo melnrakstu ieteicams atmest.',
- 'pages_draft_page_changed_since_creation' => 'This page has been updated since this draft was created. It is recommended that you discard this draft or take care not to overwrite any page changes.',
+ 'pages_draft_page_changed_since_creation' => 'Šī lapa ir izmainīta kopš šī uzmetuma izveidošanas. Ieteicams šo uzmetumu dzēst, lai netiktu pazaudētas veiktās izmaiņas.',
'pages_draft_edit_active' => [
'start_a' => ':count lietotāji pašlaik veic izmaiņas šajā lapā',
'start_b' => ':userName veic izmaiņas šajā lapā',
diff --git a/resources/lang/lv/errors.php b/resources/lang/lv/errors.php
index 8c72da976..9ce820191 100644
--- a/resources/lang/lv/errors.php
+++ b/resources/lang/lv/errors.php
@@ -23,10 +23,10 @@ return [
'saml_no_email_address' => 'Ārējās autentifikācijas sistēmas sniegtajos datos nevarēja atrast šī lietotāja e-pasta adresi',
'saml_invalid_response_id' => 'Ārējās autentifikācijas sistēmas pieprasījums neatpazīst procesu, kuru sākusi šī lietojumprogramma. Pārvietojoties atpakaļ pēc pieteikšanās var rasties šāda problēma.',
'saml_fail_authed' => 'Piekļuve ar :system neizdevās, sistēma nepieļāva veiksmīgu autorizāciju',
- 'oidc_already_logged_in' => 'Already logged in',
- 'oidc_user_not_registered' => 'The user :name is not registered and automatic registration is disabled',
- 'oidc_no_email_address' => 'Could not find an email address, for this user, in the data provided by the external authentication system',
- 'oidc_fail_authed' => 'Login using :system failed, system did not provide successful authorization',
+ 'oidc_already_logged_in' => 'Jau esat ielogojies',
+ 'oidc_user_not_registered' => 'Lietotājs :name nav reģistrēts un automātiska reģistrācija ir izslēgta',
+ 'oidc_no_email_address' => 'Ārējās autentifikācijas sistēmas sniegtajos datos nevarēja atrast šī lietotāja e-pasta adresi',
+ 'oidc_fail_authed' => 'Piekļuve ar :system neizdevās, sistēma nepieļāva veiksmīgu autorizāciju',
'social_no_action_defined' => 'Darbības nav definētas',
'social_login_bad_response' => "Saņemta kļūda izmantojot :socialAccount piekļuvi:\n:error",
'social_account_in_use' => 'Šis :socialAccount konts jau tiek izmantots, mēģiniet ieiet ar :socialAccount piekļuves iespēju.',
diff --git a/resources/lang/lv/settings.php b/resources/lang/lv/settings.php
index 79aca4e54..480fe0144 100644
--- a/resources/lang/lv/settings.php
+++ b/resources/lang/lv/settings.php
@@ -92,7 +92,7 @@ return [
'recycle_bin' => 'Miskaste',
'recycle_bin_desc' => 'Te jūs varat atjaunot dzēstās vienības vai arī izdzēst tās no sistēmas pilnībā. Šis saraksts nav filtrēts atšķirībā no līdzīgiem darbību sarakstiem sistēmā, kur ir piemēroti piekļuves tiesību filtri.',
'recycle_bin_deleted_item' => 'Dzēsta vienība',
- 'recycle_bin_deleted_parent' => 'Parent',
+ 'recycle_bin_deleted_parent' => 'Augstāks līmenis',
'recycle_bin_deleted_by' => 'Izdzēsa',
'recycle_bin_deleted_at' => 'Dzēšanas laiks',
'recycle_bin_permanently_delete' => 'Neatgriezeniski izdzēst',
@@ -105,7 +105,7 @@ return [
'recycle_bin_restore_list' => 'Atjaunojamās vienības',
'recycle_bin_restore_confirm' => 'Šī darbība atjaunos dzēsto vienību, tai skaitā visus tai pakārtotos elementus, uz tās sākotnējo atrašanās vietu. Ja sākotnējā atrašanās vieta ir izdzēsta un atrodas miskastē, būs nepieciešams atjaunot arī to.',
'recycle_bin_restore_deleted_parent' => 'Šo elementu saturošā vienība arī ir dzēsta. Tas paliks dzēsts līdz šī saturošā vienība arī ir atjaunota.',
- 'recycle_bin_restore_parent' => 'Restore Parent',
+ 'recycle_bin_restore_parent' => 'Atjaunot augstāku līmeni',
'recycle_bin_destroy_notification' => 'Dzēstas kopā :count vienības no miskastes.',
'recycle_bin_restore_notification' => 'Atjaunotas kopā :count vienības no miskastes.',
@@ -119,7 +119,7 @@ return [
'audit_table_user' => 'Lietotājs',
'audit_table_event' => 'Notikums',
'audit_table_related' => 'Saistīta vienība vai detaļa',
- 'audit_table_ip' => 'IP Address',
+ 'audit_table_ip' => 'IP adrese',
'audit_table_date' => 'Notikuma datums',
'audit_date_from' => 'Datums no',
'audit_date_to' => 'Datums līdz',
@@ -139,7 +139,7 @@ return [
'role_details' => 'Informācija par grupu',
'role_name' => 'Grupas nosaukums',
'role_desc' => 'Īss grupas apaksts',
- 'role_mfa_enforced' => 'Requires Multi-Factor Authentication',
+ 'role_mfa_enforced' => 'Nepieciešama vairākfaktoru autentifikācija',
'role_external_auth_id' => 'Ārējais autentifikācijas ID',
'role_system' => 'Sistēmas atļaujas',
'role_manage_users' => 'Pārvaldīt lietotājus',
@@ -149,7 +149,7 @@ return [
'role_manage_page_templates' => 'Pārvaldīt lapas veidnes',
'role_access_api' => 'Piekļūt sistēmas API',
'role_manage_settings' => 'Pārvaldīt iestatījumus',
- 'role_export_content' => 'Export content',
+ 'role_export_content' => 'Eksportēt saturu',
'role_asset' => 'Resursa piekļuves tiesības',
'roles_system_warning' => 'Jebkuras no trīs augstāk redzamajām atļaujām dod iespēju lietotājam mainīt savas un citu lietotāju sistēmas atļaujas. Pievieno šīs grupu atļaujas tikai tiem lietotājiem, kuriem uzticies.',
'role_asset_desc' => 'Šīs piekļuves tiesības kontrolē noklusēto piekļuvi sistēmas resursiem. Grāmatām, nodaļām un lapām norādītās tiesības būs pārākas par šīm.',
@@ -207,10 +207,10 @@ return [
'users_api_tokens_create' => 'Izveidot žetonu',
'users_api_tokens_expires' => 'Derīguma termiņš',
'users_api_tokens_docs' => 'API dokumentācija',
- 'users_mfa' => 'Multi-Factor Authentication',
- 'users_mfa_desc' => 'Setup multi-factor authentication as an extra layer of security for your user account.',
- 'users_mfa_x_methods' => ':count method configured|:count methods configured',
- 'users_mfa_configure' => 'Configure Methods',
+ 'users_mfa' => 'Vairākfaktoru autentifikācija',
+ 'users_mfa_desc' => 'Iestati vairākfaktoru autentifikāciju kā papildus drošības līmeni tavam lietotāja kontam.',
+ 'users_mfa_x_methods' => ':count metode iestatīta|:count metodes iestatītas',
+ 'users_mfa_configure' => 'Iestatīt metodes',
// API Tokens
'user_api_token_create' => 'Izveidot API žetonu',
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/nb/settings.php b/resources/lang/nb/settings.php
index 134208d7d..cd20e9374 100644
--- a/resources/lang/nb/settings.php
+++ b/resources/lang/nb/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/nl/settings.php b/resources/lang/nl/settings.php
index df5c93b97..d6b568f85 100644
--- a/resources/lang/nl/settings.php
+++ b/resources/lang/nl/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/pl/settings.php b/resources/lang/pl/settings.php
index b9abe3311..936ae751c 100644
--- a/resources/lang/pl/settings.php
+++ b/resources/lang/pl/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Estoński',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/pt/settings.php b/resources/lang/pt/settings.php
index 83a3f5da0..e432c032f 100644
--- a/resources/lang/pt/settings.php
+++ b/resources/lang/pt/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/pt_BR/settings.php b/resources/lang/pt_BR/settings.php
index e2d29f459..84f6850ab 100644
--- a/resources/lang/pt_BR/settings.php
+++ b/resources/lang/pt_BR/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/ru/settings.php b/resources/lang/ru/settings.php
index cfa802f34..183738adf 100755
--- a/resources/lang/ru/settings.php
+++ b/resources/lang/ru/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/sk/settings.php b/resources/lang/sk/settings.php
index 875239aca..ed46e8389 100644
--- a/resources/lang/sk/settings.php
+++ b/resources/lang/sk/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/sl/settings.php b/resources/lang/sl/settings.php
index a25488d15..71d9b2095 100644
--- a/resources/lang/sl/settings.php
+++ b/resources/lang/sl/settings.php
@@ -249,7 +249,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/sv/settings.php b/resources/lang/sv/settings.php
index 9065407f7..459859a26 100644
--- a/resources/lang/sv/settings.php
+++ b/resources/lang/sv/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/tr/settings.php b/resources/lang/tr/settings.php
index b95f28b39..3e07bce50 100755
--- a/resources/lang/tr/settings.php
+++ b/resources/lang/tr/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'İbranice',
'hr' => 'Hrvatski',
diff --git a/resources/lang/uk/settings.php b/resources/lang/uk/settings.php
index 602fa9bcd..e00b43a3b 100644
--- a/resources/lang/uk/settings.php
+++ b/resources/lang/uk/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/vi/settings.php b/resources/lang/vi/settings.php
index 25dd2da0e..f6cd05fd1 100644
--- a/resources/lang/vi/settings.php
+++ b/resources/lang/vi/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/zh_CN/settings.php b/resources/lang/zh_CN/settings.php
index 6fa0e84d4..3c0c67d06 100755
--- a/resources/lang/zh_CN/settings.php
+++ b/resources/lang/zh_CN/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => 'עברית',
'hr' => 'Hrvatski',
diff --git a/resources/lang/zh_TW/settings.php b/resources/lang/zh_TW/settings.php
index 53871de45..db01d7098 100644
--- a/resources/lang/zh_TW/settings.php
+++ b/resources/lang/zh_TW/settings.php
@@ -248,7 +248,7 @@ return [
'de_informal' => 'Deutsch (Du)',
'es' => 'Español',
'es_AR' => 'Español Argentina',
- 'et' => 'Eesti Keel',
+ 'et' => 'Eesti keel',
'fr' => 'Français',
'he' => '希伯來語',
'hr' => 'Hrvatski',
diff --git a/tests/Entity/PageContentTest.php b/tests/Entity/PageContentTest.php
index ca2a24131..47a3c9c13 100644
--- a/tests/Entity/PageContentTest.php
+++ b/tests/Entity/PageContentTest.php
@@ -608,6 +608,21 @@ class PageContentTest extends TestCase
$this->assertStringContainsString('html);
}
+ // Relevant to https://github.com/BookStackApp/BookStack/issues/3010
+ public function test_base64_images_within_html_blanked_if_extension_incorrect_but_prefix_matches_correct_extension()
+ {
+ $this->asEditor();
+ $page = Page::query()->first();
+
+ $this->put($page->getUrl(), [
+ 'name' => $page->name, 'summary' => '',
+ 'html' => '
test