X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/746684ec8c73cc91c4428f162f07f7af904f8c48..refs/pull/1462/head:/app/Providers/AppServiceProvider.php diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 57e5c8ed5..9b91ba126 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -1,8 +1,18 @@ getMimeType(), $imageMimes); + Validator::extend('image_extension', function ($attribute, $value, $parameters, $validator) { + $validImageExtensions = ['png', 'jpg', 'jpeg', 'bmp', 'gif', 'tiff', 'webp']; + return in_array(strtolower($value->getClientOriginalExtension()), $validImageExtensions); }); - \Blade::directive('icon', function ($expression) { + Validator::extend('no_double_extension', function ($attribute, $value, $parameters, $validator) { + $uploadName = $value->getClientOriginalName(); + return substr_count($uploadName, '.') < 2; + }); + + // Custom blade view directives + Blade::directive('icon', function ($expression) { return ""; }); // Allow longer string lengths after upgrade to utf8mb4 - \Schema::defaultStringLength(191); + Schema::defaultStringLength(191); + + // Set morph-map due to namespace changes + Relation::morphMap([ + 'BookStack\\Bookshelf' => Bookshelf::class, + 'BookStack\\Book' => Book::class, + 'BookStack\\Chapter' => Chapter::class, + 'BookStack\\Page' => Page::class, + ]); + + // View Composers + View::composer('partials.breadcrumbs', BreadcrumbsViewComposer::class); } /**