From 519fcd2b1a763865e7ca1f39b5f79ae63cc0481e Mon Sep 17 00:00:00 2001 From: iglocska Date: Wed, 26 Jan 2022 14:57:43 +0100 Subject: [PATCH] fix: [lax URL validation] added for Broodstable - can be reused elsewhere too - allows for http://hostname style urls --- src/Model/Table/AppTable.php | 5 +++++ src/Model/Table/BroodsTable.php | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Model/Table/AppTable.php b/src/Model/Table/AppTable.php index 4164456..8483770 100644 --- a/src/Model/Table/AppTable.php +++ b/src/Model/Table/AppTable.php @@ -46,4 +46,9 @@ class AppTable extends Table } } } + + public function isValidUrl($value, array $context): bool + { + return filter_var($value, FILTER_VALIDATE_URL); + } } diff --git a/src/Model/Table/BroodsTable.php b/src/Model/Table/BroodsTable.php index 9798260..0708c18 100644 --- a/src/Model/Table/BroodsTable.php +++ b/src/Model/Table/BroodsTable.php @@ -33,7 +33,11 @@ class BroodsTable extends AppTable ->requirePresence(['name', 'url', 'organisation_id'], 'create') ->notEmptyString('name') ->notEmptyString('url') - ->url('url', __('The provided value is not a valid URL')) + ->add('url', 'isValidUrl', [ + 'rule' => 'isValidUrl', + 'message' => __('The provided value is not a valid URL'), + 'provider' => 'table' + ]) ->naturalNumber('organisation_id', false); }