Merge branch 'v21.05.x' into release

This commit is contained in:
Dan Brown 2021-07-03 11:59:21 +01:00
commit e01f23583f
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
15 changed files with 201 additions and 145 deletions

View File

@ -45,7 +45,7 @@ class ThemeService
public function readThemeActions()
{
$themeActionsFile = theme_path('functions.php');
if (file_exists($themeActionsFile)) {
if ($themeActionsFile && file_exists($themeActionsFile)) {
require $themeActionsFile;
}
}

View File

@ -20,7 +20,8 @@ class FileLoader extends BaseLoader
}
if (is_null($namespace) || $namespace === '*') {
$themeTranslations = $this->loadPath(theme_path('lang'), $locale, $group);
$themePath = theme_path('lang');
$themeTranslations = $themePath ? $this->loadPath($themePath, $locale, $group) : [];
$originalTranslations = $this->loadPath($this->path, $locale, $group);
return array_merge($originalTranslations, $themeTranslations);
}

View File

@ -94,13 +94,15 @@ function setting(string $key = null, $default = null)
/**
* Get a path to a theme resource.
* Returns null if a theme is not configured and
* therefore a full path is not available for use.
*/
function theme_path(string $path = ''): string
function theme_path(string $path = ''): ?string
{
$theme = config('view.theme');
if (!$theme) {
return '';
return null;
}
return base_path('themes/' . $theme .($path ? DIRECTORY_SEPARATOR.$path : $path));

270
composer.lock generated
View File

@ -8,16 +8,16 @@
"packages": [
{
"name": "aws/aws-sdk-php",
"version": "3.184.2",
"version": "3.185.6",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "78fe691ab466fecf195209672f6c00c5d4ed219a"
"reference": "35310302912fdc3b4a0e829b84424c41e3fd9727"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/78fe691ab466fecf195209672f6c00c5d4ed219a",
"reference": "78fe691ab466fecf195209672f6c00c5d4ed219a",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/35310302912fdc3b4a0e829b84424c41e3fd9727",
"reference": "35310302912fdc3b4a0e829b84424c41e3fd9727",
"shasum": ""
},
"require": {
@ -92,9 +92,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.184.2"
"source": "https://github.com/aws/aws-sdk-php/tree/3.185.6"
},
"time": "2021-06-11T18:20:15+00:00"
"time": "2021-07-02T18:13:18+00:00"
},
{
"name": "barryvdh/laravel-dompdf",
@ -229,16 +229,16 @@
},
{
"name": "doctrine/cache",
"version": "1.11.3",
"version": "2.0.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
"reference": "3bb5588cec00a0268829cc4a518490df6741af9d"
"reference": "c9622c6820d3ede1e2315a6a377ea1076e421d88"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/cache/zipball/3bb5588cec00a0268829cc4a518490df6741af9d",
"reference": "3bb5588cec00a0268829cc4a518490df6741af9d",
"url": "https://api.github.com/repos/doctrine/cache/zipball/c9622c6820d3ede1e2315a6a377ea1076e421d88",
"reference": "c9622c6820d3ede1e2315a6a377ea1076e421d88",
"shasum": ""
},
"require": {
@ -308,7 +308,7 @@
],
"support": {
"issues": "https://github.com/doctrine/cache/issues",
"source": "https://github.com/doctrine/cache/tree/1.11.3"
"source": "https://github.com/doctrine/cache/tree/2.0.3"
},
"funding": [
{
@ -324,35 +324,36 @@
"type": "tidelift"
}
],
"time": "2021-05-25T09:01:55+00:00"
"time": "2021-05-25T09:43:04+00:00"
},
{
"name": "doctrine/dbal",
"version": "2.13.1",
"version": "2.13.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
"reference": "c800380457948e65bbd30ba92cc17cda108bf8c9"
"reference": "8dd39d2ead4409ce652fd4f02621060f009ea5e4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/c800380457948e65bbd30ba92cc17cda108bf8c9",
"reference": "c800380457948e65bbd30ba92cc17cda108bf8c9",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/8dd39d2ead4409ce652fd4f02621060f009ea5e4",
"reference": "8dd39d2ead4409ce652fd4f02621060f009ea5e4",
"shasum": ""
},
"require": {
"doctrine/cache": "^1.0",
"doctrine/cache": "^1.0|^2.0",
"doctrine/deprecations": "^0.5.3",
"doctrine/event-manager": "^1.0",
"ext-pdo": "*",
"php": "^7.1 || ^8"
},
"require-dev": {
"doctrine/coding-standard": "8.2.0",
"doctrine/coding-standard": "9.0.0",
"jetbrains/phpstorm-stubs": "2020.2",
"phpstan/phpstan": "0.12.81",
"phpunit/phpunit": "^7.5.20|^8.5|9.5.0",
"phpunit/phpunit": "^7.5.20|^8.5|9.5.5",
"squizlabs/php_codesniffer": "3.6.0",
"symfony/cache": "^4.4",
"symfony/console": "^2.0.5|^3.0|^4.0|^5.0",
"vimeo/psalm": "4.6.4"
},
@ -415,7 +416,7 @@
],
"support": {
"issues": "https://github.com/doctrine/dbal/issues",
"source": "https://github.com/doctrine/dbal/tree/2.13.1"
"source": "https://github.com/doctrine/dbal/tree/2.13.2"
},
"funding": [
{
@ -431,7 +432,7 @@
"type": "tidelift"
}
],
"time": "2021-04-17T17:30:19+00:00"
"time": "2021-06-18T21:48:39+00:00"
},
{
"name": "doctrine/deprecations",
@ -1651,16 +1652,16 @@
},
{
"name": "laravel/framework",
"version": "v6.20.27",
"version": "v6.20.29",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "92c0417e60efc39bc556ba5dfc9b20a56f7848fb"
"reference": "00fa9c04aed10d68481f5757b89da0e6798f53b3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/92c0417e60efc39bc556ba5dfc9b20a56f7848fb",
"reference": "92c0417e60efc39bc556ba5dfc9b20a56f7848fb",
"url": "https://api.github.com/repos/laravel/framework/zipball/00fa9c04aed10d68481f5757b89da0e6798f53b3",
"reference": "00fa9c04aed10d68481f5757b89da0e6798f53b3",
"shasum": ""
},
"require": {
@ -1800,7 +1801,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2021-05-11T14:00:28+00:00"
"time": "2021-06-22T13:41:06+00:00"
},
{
"name": "laravel/socialite",
@ -1873,16 +1874,16 @@
},
{
"name": "league/commonmark",
"version": "1.6.2",
"version": "1.6.5",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
"reference": "7d70d2f19c84bcc16275ea47edabee24747352eb"
"reference": "44ffd8d3c4a9133e4bd0548622b09c55af39db5f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/7d70d2f19c84bcc16275ea47edabee24747352eb",
"reference": "7d70d2f19c84bcc16275ea47edabee24747352eb",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/44ffd8d3c4a9133e4bd0548622b09c55af39db5f",
"reference": "44ffd8d3c4a9133e4bd0548622b09c55af39db5f",
"shasum": ""
},
"require": {
@ -1900,7 +1901,7 @@
"github/gfm": "0.29.0",
"michelf/php-markdown": "~1.4",
"mikehaertl/php-shellcommand": "^1.4",
"phpstan/phpstan": "^0.12",
"phpstan/phpstan": "^0.12.90",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.2",
"scrutinizer/ocular": "^1.5",
"symfony/finder": "^4.2"
@ -1970,20 +1971,20 @@
"type": "tidelift"
}
],
"time": "2021-05-12T11:39:41+00:00"
"time": "2021-06-26T11:57:13+00:00"
},
{
"name": "league/flysystem",
"version": "1.1.3",
"version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
"reference": "9be3b16c877d477357c015cec057548cf9b2a14a"
"reference": "f3ad69181b8afed2c9edf7be5a2918144ff4ea32"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/9be3b16c877d477357c015cec057548cf9b2a14a",
"reference": "9be3b16c877d477357c015cec057548cf9b2a14a",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/f3ad69181b8afed2c9edf7be5a2918144ff4ea32",
"reference": "f3ad69181b8afed2c9edf7be5a2918144ff4ea32",
"shasum": ""
},
"require": {
@ -1999,7 +2000,6 @@
"phpunit/phpunit": "^8.5.8"
},
"suggest": {
"ext-fileinfo": "Required for MimeType",
"ext-ftp": "Allows you to use FTP server storage",
"ext-openssl": "Allows you to use FTPS server storage",
"league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
@ -2057,7 +2057,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
"source": "https://github.com/thephpleague/flysystem/tree/1.x"
"source": "https://github.com/thephpleague/flysystem/tree/1.1.4"
},
"funding": [
{
@ -2065,7 +2065,7 @@
"type": "other"
}
],
"time": "2020-08-23T07:39:11+00:00"
"time": "2021-06-23T21:56:05+00:00"
},
{
"name": "league/flysystem-aws-s3-v3",
@ -2347,16 +2347,16 @@
},
{
"name": "mtdowling/jmespath.php",
"version": "2.6.0",
"version": "2.6.1",
"source": {
"type": "git",
"url": "https://github.com/jmespath/jmespath.php.git",
"reference": "42dae2cbd13154083ca6d70099692fef8ca84bfb"
"reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/42dae2cbd13154083ca6d70099692fef8ca84bfb",
"reference": "42dae2cbd13154083ca6d70099692fef8ca84bfb",
"url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/9b87907a81b87bc76d19a7fb2d61e61486ee9edb",
"reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb",
"shasum": ""
},
"require": {
@ -2364,7 +2364,7 @@
"symfony/polyfill-mbstring": "^1.17"
},
"require-dev": {
"composer/xdebug-handler": "^1.4",
"composer/xdebug-handler": "^1.4 || ^2.0",
"phpunit/phpunit": "^4.8.36 || ^7.5.15"
},
"bin": [
@ -2402,22 +2402,22 @@
],
"support": {
"issues": "https://github.com/jmespath/jmespath.php/issues",
"source": "https://github.com/jmespath/jmespath.php/tree/2.6.0"
"source": "https://github.com/jmespath/jmespath.php/tree/2.6.1"
},
"time": "2020-07-31T21:01:56+00:00"
"time": "2021-06-14T00:11:39+00:00"
},
{
"name": "nesbot/carbon",
"version": "2.49.0",
"version": "2.50.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "93d9db91c0235c486875d22f1e08b50bdf3e6eee"
"reference": "f47f17d17602b2243414a44ad53d9f8b9ada5fdb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/93d9db91c0235c486875d22f1e08b50bdf3e6eee",
"reference": "93d9db91c0235c486875d22f1e08b50bdf3e6eee",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/f47f17d17602b2243414a44ad53d9f8b9ada5fdb",
"reference": "f47f17d17602b2243414a44ad53d9f8b9ada5fdb",
"shasum": ""
},
"require": {
@ -2469,15 +2469,15 @@
{
"name": "Brian Nesbitt",
"email": "brian@nesbot.com",
"homepage": "http://nesbot.com"
"homepage": "https://markido.com"
},
{
"name": "kylekatarnls",
"homepage": "http://github.com/kylekatarnls"
"homepage": "https://github.com/kylekatarnls"
}
],
"description": "An API extension for DateTime that supports 281 different languages.",
"homepage": "http://carbon.nesbot.com",
"homepage": "https://carbon.nesbot.com",
"keywords": [
"date",
"datetime",
@ -2497,7 +2497,7 @@
"type": "tidelift"
}
],
"time": "2021-06-02T07:31:40+00:00"
"time": "2021-06-28T22:38:45+00:00"
},
{
"name": "nunomaduro/collision",
@ -3781,16 +3781,16 @@
},
{
"name": "socialiteproviders/microsoft-azure",
"version": "4.2.0",
"version": "4.2.1",
"source": {
"type": "git",
"url": "https://github.com/SocialiteProviders/Microsoft-Azure.git",
"reference": "7808764f777a01df88be9ca6b14d683e50aaf88a"
"reference": "64779ec21db0bee3111039a67c0fa0ab550a3462"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/SocialiteProviders/Microsoft-Azure/zipball/7808764f777a01df88be9ca6b14d683e50aaf88a",
"reference": "7808764f777a01df88be9ca6b14d683e50aaf88a",
"url": "https://api.github.com/repos/SocialiteProviders/Microsoft-Azure/zipball/64779ec21db0bee3111039a67c0fa0ab550a3462",
"reference": "64779ec21db0bee3111039a67c0fa0ab550a3462",
"shasum": ""
},
"require": {
@ -3816,9 +3816,9 @@
],
"description": "Microsoft Azure OAuth2 Provider for Laravel Socialite",
"support": {
"source": "https://github.com/SocialiteProviders/Microsoft-Azure/tree/4.2.0"
"source": "https://github.com/SocialiteProviders/Microsoft-Azure/tree/4.2.1"
},
"time": "2020-12-01T23:10:59+00:00"
"time": "2021-06-14T22:51:38+00:00"
},
{
"name": "socialiteproviders/okta",
@ -4072,16 +4072,16 @@
},
{
"name": "symfony/console",
"version": "v4.4.25",
"version": "v4.4.26",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "a62acecdf5b50e314a4f305cd01b5282126f3095"
"reference": "9aa1eb46c1b12fada74dc0c529e93d1ccef22576"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/a62acecdf5b50e314a4f305cd01b5282126f3095",
"reference": "a62acecdf5b50e314a4f305cd01b5282126f3095",
"url": "https://api.github.com/repos/symfony/console/zipball/9aa1eb46c1b12fada74dc0c529e93d1ccef22576",
"reference": "9aa1eb46c1b12fada74dc0c529e93d1ccef22576",
"shasum": ""
},
"require": {
@ -4141,7 +4141,7 @@
"description": "Eases the creation of beautiful and testable command line interfaces",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/console/tree/v4.4.25"
"source": "https://github.com/symfony/console/tree/v4.4.26"
},
"funding": [
{
@ -4157,7 +4157,7 @@
"type": "tidelift"
}
],
"time": "2021-05-26T11:20:16+00:00"
"time": "2021-06-06T09:12:27+00:00"
},
{
"name": "symfony/css-selector",
@ -4362,16 +4362,16 @@
},
{
"name": "symfony/error-handler",
"version": "v4.4.25",
"version": "v4.4.26",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
"reference": "310a756cec00d29d89a08518405aded046a54a8b"
"reference": "4001f01153d0eb5496fe11d8c76d1e56b47fdb88"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/310a756cec00d29d89a08518405aded046a54a8b",
"reference": "310a756cec00d29d89a08518405aded046a54a8b",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/4001f01153d0eb5496fe11d8c76d1e56b47fdb88",
"reference": "4001f01153d0eb5496fe11d8c76d1e56b47fdb88",
"shasum": ""
},
"require": {
@ -4411,7 +4411,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/error-handler/tree/v4.4.25"
"source": "https://github.com/symfony/error-handler/tree/v4.4.26"
},
"funding": [
{
@ -4427,7 +4427,7 @@
"type": "tidelift"
}
],
"time": "2021-05-26T17:39:37+00:00"
"time": "2021-06-24T07:57:22+00:00"
},
{
"name": "symfony/event-dispatcher",
@ -4732,16 +4732,16 @@
},
{
"name": "symfony/http-foundation",
"version": "v4.4.25",
"version": "v4.4.26",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
"reference": "0c79d5a65ace4fe66e49702658c024a419d2438b"
"reference": "8759ed5c27c2a8a47cb60f367f4be6727f08d58b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/0c79d5a65ace4fe66e49702658c024a419d2438b",
"reference": "0c79d5a65ace4fe66e49702658c024a419d2438b",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/8759ed5c27c2a8a47cb60f367f4be6727f08d58b",
"reference": "8759ed5c27c2a8a47cb60f367f4be6727f08d58b",
"shasum": ""
},
"require": {
@ -4780,7 +4780,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-foundation/tree/v4.4.25"
"source": "https://github.com/symfony/http-foundation/tree/v4.4.26"
},
"funding": [
{
@ -4796,20 +4796,20 @@
"type": "tidelift"
}
],
"time": "2021-05-26T11:20:16+00:00"
"time": "2021-06-26T21:56:04+00:00"
},
{
"name": "symfony/http-kernel",
"version": "v4.4.25",
"version": "v4.4.26",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
"reference": "3795165596fe81a52296b78c9aae938d434069cc"
"reference": "e08b2fb8a6eedd81c70522e514bad9b2c1fff881"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/3795165596fe81a52296b78c9aae938d434069cc",
"reference": "3795165596fe81a52296b78c9aae938d434069cc",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/e08b2fb8a6eedd81c70522e514bad9b2c1fff881",
"reference": "e08b2fb8a6eedd81c70522e514bad9b2c1fff881",
"shasum": ""
},
"require": {
@ -4884,7 +4884,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-kernel/tree/v4.4.25"
"source": "https://github.com/symfony/http-kernel/tree/v4.4.26"
},
"funding": [
{
@ -4900,20 +4900,20 @@
"type": "tidelift"
}
],
"time": "2021-06-01T07:12:08+00:00"
"time": "2021-06-30T08:18:06+00:00"
},
{
"name": "symfony/mime",
"version": "v5.3.0",
"version": "v5.3.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
"reference": "ed710d297b181f6a7194d8172c9c2423d58e4852"
"reference": "47dd7912152b82d0d4c8d9040dbc93d6232d472a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/mime/zipball/ed710d297b181f6a7194d8172c9c2423d58e4852",
"reference": "ed710d297b181f6a7194d8172c9c2423d58e4852",
"url": "https://api.github.com/repos/symfony/mime/zipball/47dd7912152b82d0d4c8d9040dbc93d6232d472a",
"reference": "47dd7912152b82d0d4c8d9040dbc93d6232d472a",
"shasum": ""
},
"require": {
@ -4967,7 +4967,7 @@
"mime-type"
],
"support": {
"source": "https://github.com/symfony/mime/tree/v5.3.0"
"source": "https://github.com/symfony/mime/tree/v5.3.2"
},
"funding": [
{
@ -4983,7 +4983,7 @@
"type": "tidelift"
}
],
"time": "2021-05-26T17:43:10+00:00"
"time": "2021-06-09T10:58:01+00:00"
},
{
"name": "symfony/polyfill-ctype",
@ -5635,16 +5635,16 @@
},
{
"name": "symfony/process",
"version": "v4.4.25",
"version": "v4.4.26",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "cd61e6dd273975c6625316de9d141ebd197f93c9"
"reference": "7e812c84c3f2dba173d311de6e510edf701685a8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/cd61e6dd273975c6625316de9d141ebd197f93c9",
"reference": "cd61e6dd273975c6625316de9d141ebd197f93c9",
"url": "https://api.github.com/repos/symfony/process/zipball/7e812c84c3f2dba173d311de6e510edf701685a8",
"reference": "7e812c84c3f2dba173d311de6e510edf701685a8",
"shasum": ""
},
"require": {
@ -5676,7 +5676,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v4.4.25"
"source": "https://github.com/symfony/process/tree/v4.4.26"
},
"funding": [
{
@ -5692,7 +5692,7 @@
"type": "tidelift"
}
],
"time": "2021-05-26T11:20:16+00:00"
"time": "2021-06-09T14:57:04+00:00"
},
{
"name": "symfony/routing",
@ -5863,16 +5863,16 @@
},
{
"name": "symfony/translation",
"version": "v4.4.25",
"version": "v4.4.26",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
"reference": "dfe132c5c6d89f90ce7f961742cc532e9ca16dd4"
"reference": "2f7fa60b8d10ca71c30dc46b0870143183a8f131"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/dfe132c5c6d89f90ce7f961742cc532e9ca16dd4",
"reference": "dfe132c5c6d89f90ce7f961742cc532e9ca16dd4",
"url": "https://api.github.com/repos/symfony/translation/zipball/2f7fa60b8d10ca71c30dc46b0870143183a8f131",
"reference": "2f7fa60b8d10ca71c30dc46b0870143183a8f131",
"shasum": ""
},
"require": {
@ -5931,7 +5931,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/translation/tree/v4.4.25"
"source": "https://github.com/symfony/translation/tree/v4.4.26"
},
"funding": [
{
@ -5947,7 +5947,7 @@
"type": "tidelift"
}
],
"time": "2021-05-26T17:39:37+00:00"
"time": "2021-06-06T08:51:46+00:00"
},
{
"name": "symfony/translation-contracts",
@ -6029,16 +6029,16 @@
},
{
"name": "symfony/var-dumper",
"version": "v4.4.25",
"version": "v4.4.26",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "31ea689a8e7d2410016b0d25fc15a1ba05a6e2e0"
"reference": "a586efdf2aa832d05b9249e9115d24f6a2691160"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/31ea689a8e7d2410016b0d25fc15a1ba05a6e2e0",
"reference": "31ea689a8e7d2410016b0d25fc15a1ba05a6e2e0",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/a586efdf2aa832d05b9249e9115d24f6a2691160",
"reference": "a586efdf2aa832d05b9249e9115d24f6a2691160",
"shasum": ""
},
"require": {
@ -6098,7 +6098,7 @@
"dump"
],
"support": {
"source": "https://github.com/symfony/var-dumper/tree/v4.4.25"
"source": "https://github.com/symfony/var-dumper/tree/v4.4.26"
},
"funding": [
{
@ -6114,7 +6114,7 @@
"type": "tidelift"
}
],
"time": "2021-05-27T09:48:32+00:00"
"time": "2021-06-17T06:35:48+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@ -6250,16 +6250,16 @@
"packages-dev": [
{
"name": "barryvdh/laravel-debugbar",
"version": "v3.6.1",
"version": "v3.6.2",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-debugbar.git",
"reference": "f6f0f895a33cac801286a74355d146bb5384a5da"
"reference": "70b89754913fd89fef16d0170a91dbc2a5cd633a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/f6f0f895a33cac801286a74355d146bb5384a5da",
"reference": "f6f0f895a33cac801286a74355d146bb5384a5da",
"url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/70b89754913fd89fef16d0170a91dbc2a5cd633a",
"reference": "70b89754913fd89fef16d0170a91dbc2a5cd633a",
"shasum": ""
},
"require": {
@ -6319,15 +6319,19 @@
],
"support": {
"issues": "https://github.com/barryvdh/laravel-debugbar/issues",
"source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.6.1"
"source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.6.2"
},
"funding": [
{
"url": "https://fruitcake.nl",
"type": "custom"
},
{
"url": "https://github.com/barryvdh",
"type": "github"
}
],
"time": "2021-06-02T06:42:22+00:00"
"time": "2021-06-14T14:29:26+00:00"
},
{
"name": "barryvdh/laravel-ide-helper",
@ -8161,16 +8165,16 @@
},
{
"name": "phpunit/phpunit",
"version": "9.5.5",
"version": "9.5.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "89ff45ea9d70e35522fb6654a2ebc221158de276"
"reference": "fb9b8333f14e3dce976a60ef6a7e05c7c7ed8bfb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/89ff45ea9d70e35522fb6654a2ebc221158de276",
"reference": "89ff45ea9d70e35522fb6654a2ebc221158de276",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fb9b8333f14e3dce976a60ef6a7e05c7c7ed8bfb",
"reference": "fb9b8333f14e3dce976a60ef6a7e05c7c7ed8bfb",
"shasum": ""
},
"require": {
@ -8200,7 +8204,7 @@
"sebastian/global-state": "^5.0.1",
"sebastian/object-enumerator": "^4.0.3",
"sebastian/resource-operations": "^3.0.3",
"sebastian/type": "^2.3.2",
"sebastian/type": "^2.3.4",
"sebastian/version": "^3.0.2"
},
"require-dev": {
@ -8248,7 +8252,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.5"
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.6"
},
"funding": [
{
@ -8260,7 +8264,7 @@
"type": "github"
}
],
"time": "2021-06-05T04:49:07+00:00"
"time": "2021-06-23T05:14:38+00:00"
},
{
"name": "react/promise",
@ -9169,16 +9173,16 @@
},
{
"name": "sebastian/type",
"version": "2.3.2",
"version": "2.3.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
"reference": "0d1c587401514d17e8f9258a27e23527cb1b06c1"
"reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0d1c587401514d17e8f9258a27e23527cb1b06c1",
"reference": "0d1c587401514d17e8f9258a27e23527cb1b06c1",
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914",
"reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914",
"shasum": ""
},
"require": {
@ -9213,7 +9217,7 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
"source": "https://github.com/sebastianbergmann/type/tree/2.3.2"
"source": "https://github.com/sebastianbergmann/type/tree/2.3.4"
},
"funding": [
{
@ -9221,7 +9225,7 @@
"type": "github"
}
],
"time": "2021-06-04T13:02:07+00:00"
"time": "2021-06-15T12:49:02+00:00"
},
{
"name": "sebastian/version",
@ -9518,16 +9522,16 @@
},
{
"name": "symfony/filesystem",
"version": "v5.3.0",
"version": "v5.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
"reference": "348116319d7fb7d1faa781d26a48922428013eb2"
"reference": "19b71c8f313b411172dd5f470fd61f24466d79a9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/348116319d7fb7d1faa781d26a48922428013eb2",
"reference": "348116319d7fb7d1faa781d26a48922428013eb2",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/19b71c8f313b411172dd5f470fd61f24466d79a9",
"reference": "19b71c8f313b411172dd5f470fd61f24466d79a9",
"shasum": ""
},
"require": {
@ -9560,7 +9564,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/filesystem/tree/v5.3.0"
"source": "https://github.com/symfony/filesystem/tree/v5.3.3"
},
"funding": [
{
@ -9576,7 +9580,7 @@
"type": "tidelift"
}
],
"time": "2021-05-26T17:43:10+00:00"
"time": "2021-06-30T07:27:52+00:00"
},
{
"name": "theseer/tokenizer",

View File

@ -60,6 +60,7 @@ return [
'no_activity' => 'No activity to show',
'no_items' => 'No items available',
'back_to_top' => 'Back to top',
'skip_to_main_content' => 'Skip to main content',
'toggle_details' => 'Toggle Details',
'toggle_thumbnails' => 'Toggle Thumbnails',
'details' => 'Details',

View File

@ -136,6 +136,23 @@ $btt-size: 40px;
}
}
.skip-to-content-link {
position: fixed;
top: -$-xxl;
left: 0;
background-color: #FFF;
z-index: 15;
border-radius: 0 4px 4px 0;
display: block;
box-shadow: $bs-dark;
font-weight: bold;
&:focus {
top: $-xl;
outline-offset: -10px;
outline: 2px dotted var(--color-primary);
}
}
.contained-search-box {
display: flex;
height: 38px;

View File

@ -28,6 +28,7 @@
</head>
<body class="@yield('body-class')">
@include('common.parts.skip-to-content')
@include('partials.notifications')
@include('common.header')

View File

@ -0,0 +1 @@
<a class="px-m py-s skip-to-content-link" href="#main-content">{{ trans('common.skip_to_main_content') }}</a>

View File

@ -5,7 +5,7 @@
<div class="container small py-xl">
<main class="card content-wrap auto-height">
<div class="body">
<div id="main-content" class="body">
<h3>{{ trans('errors.error_occurred') }}</h3>
<h5 class="mb-m">{{ $message ?? 'An unknown error occurred' }}</h5>
<p><a href="{{ url('/') }}" class="button outline">{{ trans('errors.return_home') }}</a></p>

View File

@ -8,7 +8,7 @@
@section('content')
<div class="flex-fill flex fill-height">
<div id="main-content" class="flex-fill flex fill-height">
<form action="{{ $page->getUrl() }}" autocomplete="off" data-page-id="{{ $page->id }}" method="POST" class="flex flex-fill">
{{ csrf_field() }}

View File

@ -4,7 +4,7 @@
<div class="flex-fill flex">
<div class="content flex">
<div class="scroll-body">
<div id="main-content" class="scroll-body">
@yield('body')
</div>
</div>

View File

@ -34,7 +34,7 @@
</div>
<div class="@yield('body-wrap-classes') tri-layout-middle">
<div class="tri-layout-middle-contents">
<div id="main-content" class="tri-layout-middle-contents">
@yield('body')
</div>
</div>

View File

@ -74,8 +74,11 @@
<div role="presentation">@icon('auth/'. $driver, ['style' => 'width: 56px;height: 56px;'])</div>
<div>
@if($user->hasSocialAccount($driver))
<a href="{{ url("/login/service/{$driver}/detach") }}" aria-label="{{ trans('settings.users_social_disconnect') }} - {{ $driver }}"
class="button small outline">{{ trans('settings.users_social_disconnect') }}</a>
<form action="{{ url("/login/service/{$driver}/detach") }}" method="POST">
{{ csrf_field() }}
<button aria-label="{{ trans('settings.users_social_disconnect') }} - {{ $driver }}"
class="button small outline">{{ trans('settings.users_social_disconnect') }}</button>
</form>
@else
<a href="{{ url("/login/service/{$driver}") }}" aria-label="{{ trans('settings.users_social_connect') }} - {{ $driver }}"
class="button small outline">{{ trans('settings.users_social_connect') }}</a>

View File

@ -14,7 +14,7 @@ Route::group(['middleware' => 'auth'], function () {
// Shelves
Route::get('/create-shelf', 'BookshelfController@create');
Route::group(['prefix' => 'shelves'], function() {
Route::group(['prefix' => 'shelves'], function () {
Route::get('/', 'BookshelfController@index');
Route::post('/', 'BookshelfController@store');
Route::get('/{slug}/edit', 'BookshelfController@edit');
@ -226,7 +226,7 @@ Route::group(['middleware' => 'auth'], function () {
Route::get('/login/service/{socialDriver}', 'Auth\SocialController@login');
Route::get('/login/service/{socialDriver}/callback', 'Auth\SocialController@callback');
Route::group(['middleware' => 'auth'], function () {
Route::get('/login/service/{socialDriver}/detach', 'Auth\SocialController@detach');
Route::post('/login/service/{socialDriver}/detach', 'Auth\SocialController@detach');
});
Route::get('/register/service/{socialDriver}', 'Auth\SocialController@register');

View File

@ -1,5 +1,6 @@
<?php namespace Tests\Auth;
use BookStack\Auth\SocialAccount;
use BookStack\Auth\User;
use DB;
use Laravel\Socialite\Contracts\Factory;
@ -83,6 +84,31 @@ class SocialAuthTest extends TestCase
$resp->assertDontSee("login-form");
}
public function test_social_account_detach()
{
$editor = $this->getEditor();
config([
'GITHUB_APP_ID' => 'abc123', 'GITHUB_APP_SECRET' => '123abc',
'APP_URL' => 'http://localhost'
]);
$socialAccount = SocialAccount::query()->forceCreate([
'user_id' => $editor->id,
'driver' => 'github',
'driver_id' => 'logintest123',
]);
$resp = $this->actingAs($editor)->get($editor->getEditUrl());
$resp->assertElementContains('form[action$="/login/service/github/detach"]', 'Disconnect Account');
$resp = $this->post('/login/service/github/detach');
$resp->assertRedirect($editor->getEditUrl());
$resp = $this->followRedirects($resp);
$resp->assertSee('Github account was successfully disconnected from your profile.');
$this->assertDatabaseMissing('social_accounts', ['id' => $socialAccount->id]);
}
public function test_social_autoregister()
{
config([