From df912545e17269bf2c01f35faf8c82cdde050cf7 Mon Sep 17 00:00:00 2001 From: Vincent BRIDIER Date: Mon, 18 Aug 2025 12:13:04 +0200 Subject: [PATCH 1/2] feat: Add words blacklist for message and ticket creation --- app/Http/Requests/Bo/CreateMessage.php | 14 +++++++++++++- app/Http/Requests/Bo/StoreTicket.php | 14 +++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/app/Http/Requests/Bo/CreateMessage.php b/app/Http/Requests/Bo/CreateMessage.php index a714eda..d83e9ee 100644 --- a/app/Http/Requests/Bo/CreateMessage.php +++ b/app/Http/Requests/Bo/CreateMessage.php @@ -54,7 +54,19 @@ class CreateMessage extends FormRequest $user = auth()->user(); return [ 'subscribe' => 'required|boolean', - 'message' => 'required|min:' . ($user->isAdmin() ? '5' : '20'), + 'message' => [ + 'required|min:' . ($user->isAdmin() ? '5' : '20'), + function ($attribute, $value, $fail) { + $forbidden = ['merci de', 'merci de']; + foreach ($forbidden as $word) { + if (stripos(strtolower($value), $word) !== false) { + $fail( + "Le champs 'Message' contient la chaine de caractère non autorisée suivante : $word" + ); + } + } + }, + ], 'file_messages' => 'sometimes|array', 'file_messages.*' => 'mimes:pptx,docx,xlsx,csv,txt,jpeg,jpg,png,pdf,svg|max:2048', 'type' => ['required', new Enum(MessageTypeEnum::class)] diff --git a/app/Http/Requests/Bo/StoreTicket.php b/app/Http/Requests/Bo/StoreTicket.php index 8c5a568..a58745b 100644 --- a/app/Http/Requests/Bo/StoreTicket.php +++ b/app/Http/Requests/Bo/StoreTicket.php @@ -97,7 +97,19 @@ class StoreTicket extends FormRequest } ], 'date_mep' => 'nullable|date', - 'text' => 'required|string|min:40', + 'text' => [ + 'required|string|min:40', + function ($attribute, $value, $fail) { + $forbidden = ['merci de', 'merci de']; + foreach ($forbidden as $word) { + if (stripos(strtolower($value), $word) !== false) { + $fail( + "Le champs 'Description du ticket' contient la chaine de caractère non autorisée suivante : $word" + ); + } + } + }, + ], 'title' => 'required|string|between:3,255', 'file_tickets' => 'sometimes|array', 'file_tickets.*' => 'mimes:pptx,docx,xlsx,csv,txt,jpeg,jpg,png,pdf,svg|max:2048', From 21abe7d761adf7bf84b9635b5ce82d05cb44e486 Mon Sep 17 00:00:00 2001 From: Vincent BRIDIER Date: Mon, 18 Aug 2025 12:40:36 +0200 Subject: [PATCH 2/2] fix: Fix Requests --- app/Http/Requests/Bo/CreateMessage.php | 3 ++- app/Http/Requests/Bo/StoreTicket.php | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/Http/Requests/Bo/CreateMessage.php b/app/Http/Requests/Bo/CreateMessage.php index d83e9ee..3ac7392 100644 --- a/app/Http/Requests/Bo/CreateMessage.php +++ b/app/Http/Requests/Bo/CreateMessage.php @@ -55,7 +55,8 @@ class CreateMessage extends FormRequest return [ 'subscribe' => 'required|boolean', 'message' => [ - 'required|min:' . ($user->isAdmin() ? '5' : '20'), + 'required', + 'min:' . ($user->isAdmin() ? '5' : '20'), function ($attribute, $value, $fail) { $forbidden = ['merci de', 'merci de']; foreach ($forbidden as $word) { diff --git a/app/Http/Requests/Bo/StoreTicket.php b/app/Http/Requests/Bo/StoreTicket.php index a58745b..b58d0a2 100644 --- a/app/Http/Requests/Bo/StoreTicket.php +++ b/app/Http/Requests/Bo/StoreTicket.php @@ -98,7 +98,9 @@ class StoreTicket extends FormRequest ], 'date_mep' => 'nullable|date', 'text' => [ - 'required|string|min:40', + 'required' + 'string', + 'min:40', function ($attribute, $value, $fail) { $forbidden = ['merci de', 'merci de']; foreach ($forbidden as $word) {