3 namespace BookStack\Providers;
5 use BookStack\Uploads\ImageService;
6 use Illuminate\Support\Facades\Validator;
7 use Illuminate\Support\ServiceProvider;
9 class ValidationRuleServiceProvider extends ServiceProvider
12 * Register our custom validation rules when the application boots.
14 public function boot(): void
16 Validator::extend('image_extension', function ($attribute, $value, $parameters, $validator) {
17 $extension = strtolower($value->getClientOriginalExtension());
19 return ImageService::isExtensionSupported($extension);
22 Validator::extend('safe_url', function ($attribute, $value, $parameters, $validator) {
23 $cleanLinkName = strtolower(trim($value));
24 $isJs = str_starts_with($cleanLinkName, 'javascript:');
25 $isData = str_starts_with($cleanLinkName, 'data:');
27 return !$isJs && !$isData;