From 82310a2e0b426e84501090bdd9c0cf592d1c0d53 Mon Sep 17 00:00:00 2001 From: Yassine Doghri Date: Thu, 3 Nov 2022 15:37:44 +0000 Subject: [PATCH] fix(platforms): convert special characters to htmlentities to validate url remove validate_url custom validator and replace with CI4's valid_url_strict --- app/Config/Validation.php | 2 -- app/Validation/Rules.php | 28 ------------------- .../Controllers/PodcastImportController.php | 2 +- .../Controllers/PodcastPlatformController.php | 2 +- modules/Admin/Language/ar/Validation.php | 2 -- modules/Admin/Language/br/Validation.php | 2 -- modules/Admin/Language/ca/Validation.php | 2 -- modules/Admin/Language/de/Validation.php | 2 -- modules/Admin/Language/el/Validation.php | 2 -- modules/Admin/Language/en/Validation.php | 2 -- modules/Admin/Language/es/Validation.php | 2 -- modules/Admin/Language/fa/Validation.php | 2 -- modules/Admin/Language/fr/Validation.php | 2 -- modules/Admin/Language/gd/Validation.php | 2 -- modules/Admin/Language/gl/Validation.php | 2 -- modules/Admin/Language/id/Validation.php | 2 -- modules/Admin/Language/it/Validation.php | 2 -- modules/Admin/Language/ko/Validation.php | 2 -- modules/Admin/Language/nl/Validation.php | 2 -- modules/Admin/Language/nn-NO/Validation.php | 2 -- modules/Admin/Language/oc/Validation.php | 2 -- modules/Admin/Language/pl/Validation.php | 2 -- modules/Admin/Language/pt-BR/Validation.php | 2 -- modules/Admin/Language/pt/Validation.php | 2 -- modules/Admin/Language/ru/Validation.php | 2 -- modules/Admin/Language/sk/Validation.php | 2 -- modules/Admin/Language/sv/Validation.php | 2 -- modules/Admin/Language/zh-Hans/Validation.php | 2 -- .../Install/Controllers/InstallController.php | 4 +-- 29 files changed, 4 insertions(+), 82 deletions(-) delete mode 100644 app/Validation/Rules.php diff --git a/app/Config/Validation.php b/app/Config/Validation.php index d9157b1a..56b7c429 100644 --- a/app/Config/Validation.php +++ b/app/Config/Validation.php @@ -5,7 +5,6 @@ declare(strict_types=1); namespace Config; use App\Validation\FileRules as AppFileRules; -use App\Validation\Rules as AppRules; use CodeIgniter\Config\BaseConfig; use CodeIgniter\Validation\CreditCardRules; use CodeIgniter\Validation\FileRules; @@ -24,7 +23,6 @@ class Validation extends BaseConfig FormatRules::class, FileRules::class, CreditCardRules::class, - AppRules::class, AppFileRules::class, ]; diff --git a/app/Validation/Rules.php b/app/Validation/Rules.php deleted file mode 100644 index 6ef0984e..00000000 --- a/app/Validation/Rules.php +++ /dev/null @@ -1,28 +0,0 @@ - 'required|regex_match[/^[a-zA-Z0-9\_]{1,32}$/]', - 'imported_feed_url' => 'required|validate_url', + 'imported_feed_url' => 'required|valid_url_strict', 'season_number' => 'is_natural_no_zero|permit_empty', 'max_episodes' => 'is_natural_no_zero|permit_empty', ]; diff --git a/modules/Admin/Controllers/PodcastPlatformController.php b/modules/Admin/Controllers/PodcastPlatformController.php index cfc76aa2..82cdfc77 100644 --- a/modules/Admin/Controllers/PodcastPlatformController.php +++ b/modules/Admin/Controllers/PodcastPlatformController.php @@ -75,7 +75,7 @@ class PodcastPlatformController extends BaseController continue; } - if (! $validation->check($podcastPlatformUrl, 'validate_url')) { + if (! $validation->check(htmlentities($podcastPlatformUrl), 'valid_url_strict')) { continue; } diff --git a/modules/Admin/Language/ar/Validation.php b/modules/Admin/Language/ar/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/ar/Validation.php +++ b/modules/Admin/Language/ar/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/br/Validation.php b/modules/Admin/Language/br/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/br/Validation.php +++ b/modules/Admin/Language/br/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/ca/Validation.php b/modules/Admin/Language/ca/Validation.php index 6740204a..bcc1dde2 100644 --- a/modules/Admin/Language/ca/Validation.php +++ b/modules/Admin/Language/ca/Validation.php @@ -13,6 +13,4 @@ return [ '{field} no és una imatge, o no és prou ample o alt.', 'is_image_ratio' => '{field} no és una imatge o no té la proporció correcta.', - 'validate_url' => - 'El camp {field} ha de ser una adreça URL vàlida (p. ex., https://exemple.com/).', ]; diff --git a/modules/Admin/Language/de/Validation.php b/modules/Admin/Language/de/Validation.php index f973bf67..9881d307 100644 --- a/modules/Admin/Language/de/Validation.php +++ b/modules/Admin/Language/de/Validation.php @@ -13,6 +13,4 @@ return [ '{field} ist entweder kein Bild, oder es ist nicht breit oder hoch genug.', 'is_image_ratio' => '{field} ist entweder kein Bild oder nicht das richtige Verhältnis.', - 'validate_url' => - 'Das {field} -Feld muss eine gültige URL sein (z.B. https://example.com/).', ]; diff --git a/modules/Admin/Language/el/Validation.php b/modules/Admin/Language/el/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/el/Validation.php +++ b/modules/Admin/Language/el/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/en/Validation.php b/modules/Admin/Language/en/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/en/Validation.php +++ b/modules/Admin/Language/en/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/es/Validation.php b/modules/Admin/Language/es/Validation.php index 7b2d4379..2f234a7f 100644 --- a/modules/Admin/Language/es/Validation.php +++ b/modules/Admin/Language/es/Validation.php @@ -13,6 +13,4 @@ return [ '{field} no es una imagen, o no es suficientemente ancha o alta.', 'is_image_ratio' => '{field} no es una imagen o no es de la proporción correcta.', - 'validate_url' => - 'El campo {field} debe ser una URL válida (ej. https://ejemplo.com/).', ]; diff --git a/modules/Admin/Language/fa/Validation.php b/modules/Admin/Language/fa/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/fa/Validation.php +++ b/modules/Admin/Language/fa/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/fr/Validation.php b/modules/Admin/Language/fr/Validation.php index e9989330..6a1a8566 100644 --- a/modules/Admin/Language/fr/Validation.php +++ b/modules/Admin/Language/fr/Validation.php @@ -13,6 +13,4 @@ return [ '{field} n’est pas une image ou n’a pas la taille minimale requise.', 'is_image_ratio' => '{field} n’est pas une image ou n’est pas au bon format.', - 'validate_url' => - 'Le champs {field} doit être une adresse valide (par exemple https://exemple.com/).', ]; diff --git a/modules/Admin/Language/gd/Validation.php b/modules/Admin/Language/gd/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/gd/Validation.php +++ b/modules/Admin/Language/gd/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/gl/Validation.php b/modules/Admin/Language/gl/Validation.php index 54aaef52..dbeaea55 100644 --- a/modules/Admin/Language/gl/Validation.php +++ b/modules/Admin/Language/gl/Validation.php @@ -13,6 +13,4 @@ return [ 'ou ben {field} non é unha imaxe ou non é suficientemente alta ou ancha.', 'is_image_ratio' => 'ou ben {field} non é unha imaxe ou non ten proporcións axeitadas.', - 'validate_url' => - 'O campo {field} ten que ser un URL válido (ex. https://exemplo.com/).', ]; diff --git a/modules/Admin/Language/id/Validation.php b/modules/Admin/Language/id/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/id/Validation.php +++ b/modules/Admin/Language/id/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/it/Validation.php b/modules/Admin/Language/it/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/it/Validation.php +++ b/modules/Admin/Language/it/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/ko/Validation.php b/modules/Admin/Language/ko/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/ko/Validation.php +++ b/modules/Admin/Language/ko/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/nl/Validation.php b/modules/Admin/Language/nl/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/nl/Validation.php +++ b/modules/Admin/Language/nl/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/nn-NO/Validation.php b/modules/Admin/Language/nn-NO/Validation.php index ed99da37..67faa809 100644 --- a/modules/Admin/Language/nn-NO/Validation.php +++ b/modules/Admin/Language/nn-NO/Validation.php @@ -13,6 +13,4 @@ return [ '{field} er anten ikkje eit bilete, eller er ikkje breitt og høgt nok.', 'is_image_ratio' => '{field} er anten ikkje eit bilete, eller har feil forhold mellom høgd og breidd.', - 'validate_url' => - '{field}-feltet må vera ei gyldig nettadresse (td. https://eksempel.no/).', ]; diff --git a/modules/Admin/Language/oc/Validation.php b/modules/Admin/Language/oc/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/oc/Validation.php +++ b/modules/Admin/Language/oc/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/pl/Validation.php b/modules/Admin/Language/pl/Validation.php index a71b5913..5b4e8db5 100644 --- a/modules/Admin/Language/pl/Validation.php +++ b/modules/Admin/Language/pl/Validation.php @@ -13,6 +13,4 @@ return [ '{field} nie jest obrazem, albo nie jest wystarczająco szeroki lub wysoki.', 'is_image_ratio' => '{field} nie jest obrazem, albo nie ma właściwych proporcji.', - 'validate_url' => - 'Pole {field} musi być prawidłowym adresem URL (np. https://przyklad.com/).', ]; diff --git a/modules/Admin/Language/pt-BR/Validation.php b/modules/Admin/Language/pt-BR/Validation.php index 76ca2ae7..93660630 100644 --- a/modules/Admin/Language/pt-BR/Validation.php +++ b/modules/Admin/Language/pt-BR/Validation.php @@ -13,6 +13,4 @@ return [ '{field} não é uma imagem ou não é largo ou alto o suficiente.', 'is_image_ratio' => '{field} não é uma imagem ou não tem a proporção correta.', - 'validate_url' => - 'O campo {field} deve ser uma URL válida (por exemplo, https://examplo.com/).', ]; diff --git a/modules/Admin/Language/pt/Validation.php b/modules/Admin/Language/pt/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/pt/Validation.php +++ b/modules/Admin/Language/pt/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/ru/Validation.php b/modules/Admin/Language/ru/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/ru/Validation.php +++ b/modules/Admin/Language/ru/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/sk/Validation.php b/modules/Admin/Language/sk/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/sk/Validation.php +++ b/modules/Admin/Language/sk/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/sv/Validation.php b/modules/Admin/Language/sv/Validation.php index 750b1968..3bc78cfe 100644 --- a/modules/Admin/Language/sv/Validation.php +++ b/modules/Admin/Language/sv/Validation.php @@ -13,6 +13,4 @@ return [ '{field} is either not an image, or it is not wide or tall enough.', 'is_image_ratio' => '{field} is either not an image or not of the right ratio.', - 'validate_url' => - 'The {field} field must be a valid URL (eg. https://example.com/).', ]; diff --git a/modules/Admin/Language/zh-Hans/Validation.php b/modules/Admin/Language/zh-Hans/Validation.php index cfdeac6e..fa41468c 100644 --- a/modules/Admin/Language/zh-Hans/Validation.php +++ b/modules/Admin/Language/zh-Hans/Validation.php @@ -13,6 +13,4 @@ return [ '{field} 不是一张图片,或者宽或高度不够。', 'is_image_ratio' => '{field} 不是图片或比例不正确。', - 'validate_url' => - '{field} 字段必须是有效的 URL(例如 https://example.com/)。', ]; diff --git a/modules/Install/Controllers/InstallController.php b/modules/Install/Controllers/InstallController.php index 82be50da..20cbc056 100644 --- a/modules/Install/Controllers/InstallController.php +++ b/modules/Install/Controllers/InstallController.php @@ -154,8 +154,8 @@ class InstallController extends Controller public function attemptInstanceConfig(): RedirectResponse { $rules = [ - 'hostname' => 'required|validate_url', - 'media_base_url' => 'permit_empty|validate_url', + 'hostname' => 'required|valid_url_strict', + 'media_base_url' => 'permit_empty|valid_url_strict', 'admin_gateway' => 'required', 'auth_gateway' => 'required|differs[admin_gateway]', ];