X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/a6633642232efd164d4708967ab59e498fbff896..refs/pull/3365/head:/app/Providers/CustomValidationServiceProvider.php diff --git a/app/Providers/CustomValidationServiceProvider.php b/app/Providers/CustomValidationServiceProvider.php index 4a5272b40..ac95099cc 100644 --- a/app/Providers/CustomValidationServiceProvider.php +++ b/app/Providers/CustomValidationServiceProvider.php @@ -2,31 +2,28 @@ namespace BookStack\Providers; +use BookStack\Uploads\ImageService; use Illuminate\Support\Facades\Validator; use Illuminate\Support\ServiceProvider; class CustomValidationServiceProvider extends ServiceProvider { - /** * Register our custom validation rules when the application boots. */ public function boot(): void { Validator::extend('image_extension', function ($attribute, $value, $parameters, $validator) { - $validImageExtensions = ['png', 'jpg', 'jpeg', 'gif', 'webp']; - return in_array(strtolower($value->getClientOriginalExtension()), $validImageExtensions); - }); + $extension = strtolower($value->getClientOriginalExtension()); - Validator::extend('no_double_extension', function ($attribute, $value, $parameters, $validator) { - $uploadName = $value->getClientOriginalName(); - return substr_count($uploadName, '.') < 2; + return ImageService::isExtensionSupported($extension); }); Validator::extend('safe_url', function ($attribute, $value, $parameters, $validator) { $cleanLinkName = strtolower(trim($value)); $isJs = strpos($cleanLinkName, 'javascript:') === 0; $isData = strpos($cleanLinkName, 'data:') === 0; + return !$isJs && !$isData; }); }