]> BookStack Code Mirror - bookstack/blob - app/Providers/CustomValidationServiceProvider.php
Merge branch 'create-content-meta-tags' of https://github.com/james-geiger/BookStack...
[bookstack] / app / Providers / CustomValidationServiceProvider.php
1 <?php
2
3 namespace BookStack\Providers;
4
5 use Illuminate\Support\Facades\Validator;
6 use Illuminate\Support\ServiceProvider;
7
8 class CustomValidationServiceProvider extends ServiceProvider
9 {
10
11     /**
12      * Register our custom validation rules when the application boots.
13      */
14     public function boot(): void
15     {
16         Validator::extend('image_extension', function ($attribute, $value, $parameters, $validator) {
17             $validImageExtensions = ['png', 'jpg', 'jpeg', 'gif', 'webp'];
18             return in_array(strtolower($value->getClientOriginalExtension()), $validImageExtensions);
19         });
20
21         Validator::extend('safe_url', function ($attribute, $value, $parameters, $validator) {
22             $cleanLinkName = strtolower(trim($value));
23             $isJs = strpos($cleanLinkName, 'javascript:') === 0;
24             $isData = strpos($cleanLinkName, 'data:') === 0;
25             return !$isJs && !$isData;
26         });
27     }
28 }