From 39702cec9f81d522399a5ae2d85317f399b2dfa6 Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Sun, 15 Mar 2026 16:12:55 +0100 Subject: [PATCH 01/28] fix cors --- config/cors.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/cors.php b/config/cors.php index fb1bf26..b8a7871 100644 --- a/config/cors.php +++ b/config/cors.php @@ -19,7 +19,7 @@ return [ 'allowed_methods' => ['*'], - 'allowed_origins' => env('DEV', 0) == 1 ? ['http://localhost:5173'] : ['http://localhost'], + 'allowed_origins' => ['*'], 'allowed_origins_patterns' => [], From 2789f0e1d95f0b3574fd33f5e17e4f74bb6e09d4 Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Sun, 15 Mar 2026 16:13:13 +0100 Subject: [PATCH 02/28] remove condition --- app/Http/Controllers/TasksController.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/app/Http/Controllers/TasksController.php b/app/Http/Controllers/TasksController.php index f786bee..55111b8 100644 --- a/app/Http/Controllers/TasksController.php +++ b/app/Http/Controllers/TasksController.php @@ -213,11 +213,6 @@ class TasksController extends Controller return response()->json(["message" => "Task not found"], 404); } - if (!$task->event) { - Log::error("Relation 'event' manquante pour la tâche ID: " . $task->id); - return response()->json(["message" => "Task is missing its parent event"], 422); - } - $isAssigned = $task->users()->where('user_id', $id)->exists(); if (!$isAssigned) { return response()->json(["message" => "User is not assigned to this task"], 400); From 6ff9d3a6a76b4c8a32fc5ca43031e15842b6fffe Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 09:32:36 +0100 Subject: [PATCH 03/28] remove test email --- app/Mail/TestMail.php | 57 ---------------------------- resources/views/mails/test.blade.php | 12 ------ 2 files changed, 69 deletions(-) delete mode 100644 app/Mail/TestMail.php delete mode 100644 resources/views/mails/test.blade.php diff --git a/app/Mail/TestMail.php b/app/Mail/TestMail.php deleted file mode 100644 index 036d55f..0000000 --- a/app/Mail/TestMail.php +++ /dev/null @@ -1,57 +0,0 @@ -data = $data; - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Test Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'mails.test', - with: [ - 'name' => $this->data['name'], - ] - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/resources/views/mails/test.blade.php b/resources/views/mails/test.blade.php deleted file mode 100644 index 62d0eb1..0000000 --- a/resources/views/mails/test.blade.php +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Test Email - - -

Hello {{ $name }}

-

This is a test email sent from your application using MailHog!

- - From 7ff2f6a6d0722b2a3f8647a11b49b3ba47170c17 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 09:40:43 +0100 Subject: [PATCH 04/28] improve validate mail --- resources/views/mails/validate.blade.php | 55 +++++++++++++++++++----- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/resources/views/mails/validate.blade.php b/resources/views/mails/validate.blade.php index e9690f5..9c07457 100644 --- a/resources/views/mails/validate.blade.php +++ b/resources/views/mails/validate.blade.php @@ -1,12 +1,47 @@ - - - - - Test Email - - -

Bonjour {{ $name }} {{ $lastname }},

-

Votre compte sur le site de gestion des bénévoles de l'assiocation des comitées des fêtes de Beaupont à été validé.

- + + + + + Compte validé + + + + +
+

🎉 Compte validé !

+
+ +
+

Bonjour {{ $name }} {{ $lastname }},

+ +

+ Nous avons le plaisir de vous informer que votre compte sur le site de gestion des bénévoles du Comité des fêtes de Beaupont a été validé avec succès. +

+ +

+ Vous pouvez dès à présent accéder à votre espace personnel et participer aux différentes activités proposées. +

+ + + +

+ Si vous avez la moindre question ou besoin d’assistance, n’hésitez pas à nous contacter. +

+ +

+ À très bientôt,
+ L’équipe du Comité des fêtes de Beaupont +

+
+ +

+ Cet email a été envoyé automatiquement, merci de ne pas y répondre. +

+ From 870151cdd3c8ca85379fb17476a82e2f20cdbb08 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 09:41:54 +0100 Subject: [PATCH 05/28] create a mail when an account is created by an administrator --- app/Http/Controllers/UserController.php | 8 +++ app/Mail/CreateUserByAdminMail.php | 58 +++++++++++++++++++ .../views/mails/createUserByAdmin.blade.php | 48 +++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 app/Mail/CreateUserByAdminMail.php create mode 100644 resources/views/mails/createUserByAdmin.blade.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 751c741..3654c4c 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Events\UserCreated; +use App\Mail\CreateUserByAdminMail; use App\Mail\TestMail; use App\Mail\ValidateMail; use App\Models\Notification; @@ -86,6 +87,13 @@ class UserController extends Controller "phone" => $phone->formatInternational(), ]); + $data = [ + 'name' => $user->name, + 'lastname' => $user->lastname, + ]; + Mail::to($user->email)->send(new CreateUserByAdminMail($data)); + + return response()->json([ 'message' => 'User created successfully', "password" => $password, diff --git a/app/Mail/CreateUserByAdminMail.php b/app/Mail/CreateUserByAdminMail.php new file mode 100644 index 0000000..1a9d6ff --- /dev/null +++ b/app/Mail/CreateUserByAdminMail.php @@ -0,0 +1,58 @@ +data = $data; + } + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + return new Envelope( + subject: 'Compte créé - Comité des fêtes de Beaupont', + ); + } + + /** + * Get the message content definition. + */ + public function content(): Content + { + return new Content( + view: 'mails.createUserByAdmin', + with: [ + 'name' => $this->data['name'], + 'lastname' => $this->data['lastname'], + ] + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/resources/views/mails/createUserByAdmin.blade.php b/resources/views/mails/createUserByAdmin.blade.php new file mode 100644 index 0000000..82b23f8 --- /dev/null +++ b/resources/views/mails/createUserByAdmin.blade.php @@ -0,0 +1,48 @@ + + + + + + Compte créé + + +
+

Bonjour {{ $name }} {{ $lastname }},

+ +

+ Un compte a été créé pour vous par un administrateur sur le site de gestion des bénévoles + du Comité des fêtes de Beaupont. +

+ +

+ Vous pouvez dès à présent vous connecter et accéder à votre espace personnel afin de participer + aux activités proposées. +

+ +

+ Veuillez vous renseigner auprès d'un administrateur pour récupérer vos identifiants. +

+ +

+ + Se connecter + +

+ +

+ Si vous n’êtes pas à l’origine de cette création de compte ou si vous avez des questions, + merci de contacter rapidement l’équipe organisatrice. +

+ +

+ À très bientôt,
+ L’équipe du Comité des fêtes de Beaupont +

+
+ +

+ Cet email a été envoyé automatiquement, merci de ne pas y répondre. +

+ + From d9ce927d88c634779f9ca5071b961c144116ab1b Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 09:45:55 +0100 Subject: [PATCH 06/28] create a mail when an account is deleted by an administrator or by the user --- app/Http/Controllers/UserController.php | 14 +++++ app/Mail/DeleteAccountMail.php | 58 +++++++++++++++++++ resources/views/mails/deleteAccount.blade.php | 39 +++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 app/Mail/DeleteAccountMail.php create mode 100644 resources/views/mails/deleteAccount.blade.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 3654c4c..7a6bb32 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use App\Events\UserCreated; use App\Mail\CreateUserByAdminMail; +use App\Mail\DeleteAccountMail; use App\Mail\TestMail; use App\Mail\ValidateMail; use App\Models\Notification; @@ -103,6 +104,13 @@ class UserController extends Controller public function delete(Request $request): JsonResponse { try { $user = User::find($request->user()->id); + + $data = [ + 'name' => $user->name, + 'lastname' => $user->lastname, + ]; + Mail::to($user->email)->send(new DeleteAccountMail($data)); + $user->delete(); return response()->json(['message' => 'User deleted successfully']); } catch(\Exception $e) { @@ -133,6 +141,12 @@ class UserController extends Controller try { $user = User::find($id); + $data = [ + 'name' => $user->name, + 'lastname' => $user->lastname, + ]; + Mail::to($user->email)->send(new DeleteAccountMail($data)); + $user->delete(); return response()->json(['message' => 'User deleted successfully']); } catch(\Exception $e) { diff --git a/app/Mail/DeleteAccountMail.php b/app/Mail/DeleteAccountMail.php new file mode 100644 index 0000000..2b5571d --- /dev/null +++ b/app/Mail/DeleteAccountMail.php @@ -0,0 +1,58 @@ +data = $data; + } + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + return new Envelope( + subject: 'Compte supprimé - Comité des fêtes de Beaupont', + ); + } + + /** + * Get the message content definition. + */ + public function content(): Content + { + return new Content( + view: 'mails.deleteAccount', + with: [ + 'name' => $this->data['name'], + 'lastname' => $this->data['lastname'], + ] + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/resources/views/mails/deleteAccount.blade.php b/resources/views/mails/deleteAccount.blade.php new file mode 100644 index 0000000..7137326 --- /dev/null +++ b/resources/views/mails/deleteAccount.blade.php @@ -0,0 +1,39 @@ + + + + + + Compte supprimé + + +
+

Bonjour {{ $name }} {{ $lastname }},

+ +

+ Nous vous informons que votre compte sur le site de gestion des bénévoles + du Comité des fêtes de Beaupont a été supprimé. +

+ +

+ Vous n’avez désormais plus accès à votre espace personnel ni aux services associés. +

+ +

+ ⚠️ Si vous n’êtes pas à l’origine de cette action, merci de nous contacter rapidement. +

+ +

+ Si vous souhaitez à nouveau participer aux activités, vous pouvez effectuer une nouvelle inscription à tout moment. +

+ +

+ À bientôt,
+ L’équipe du Comité des fêtes de Beaupont +

+
+ +

+ Cet email a été envoyé automatiquement, merci de ne pas y répondre. +

+ + From c3fb0ec094fd38471b92907c1b8eb494f1d8f6ac Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 09:48:20 +0100 Subject: [PATCH 07/28] create a mail when an account is deactivated by an administrator --- app/Http/Controllers/UserController.php | 7 +++ app/Mail/DeactivateAccountMail.php | 58 +++++++++++++++++++ .../views/mails/deactivateAccount.blade.php | 40 +++++++++++++ 3 files changed, 105 insertions(+) create mode 100644 app/Mail/DeactivateAccountMail.php create mode 100644 resources/views/mails/deactivateAccount.blade.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 7a6bb32..df31d4f 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use App\Events\UserCreated; use App\Mail\CreateUserByAdminMail; +use App\Mail\DeactivateAccountMail; use App\Mail\DeleteAccountMail; use App\Mail\TestMail; use App\Mail\ValidateMail; @@ -165,6 +166,12 @@ class UserController extends Controller try { $userToDeactivate->update(['validate' => 0]); + $data = [ + 'name' => $userToDeactivate->name, + 'lastname' => $userToDeactivate->lastname, + ]; + Mail::to($userToDeactivate->email)->send(new DeactivateAccountMail($data)); + return response()->json(['message' => 'User deactivated successfully']); } catch (ModelNotFoundException $e) { return response()->json(['message' => 'Utilisateur non trouvé'], 404); diff --git a/app/Mail/DeactivateAccountMail.php b/app/Mail/DeactivateAccountMail.php new file mode 100644 index 0000000..1ce8ff9 --- /dev/null +++ b/app/Mail/DeactivateAccountMail.php @@ -0,0 +1,58 @@ +data = $data; + } + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + return new Envelope( + subject: 'Compte désactivé - Comité des fêtes de Beaupont', + ); + } + + /** + * Get the message content definition. + */ + public function content(): Content + { + return new Content( + view: 'mails.deactivateAccount', + with: [ + 'name' => $this->data['name'], + 'lastname' => $this->data['lastname'], + ] + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/resources/views/mails/deactivateAccount.blade.php b/resources/views/mails/deactivateAccount.blade.php new file mode 100644 index 0000000..03fd4e3 --- /dev/null +++ b/resources/views/mails/deactivateAccount.blade.php @@ -0,0 +1,40 @@ + + + + + + Compte désactivé + + +
+

Bonjour {{ $name }} {{ $lastname }},

+ +

+ Nous vous informons que votre compte sur le site de gestion des bénévoles + du Comité des fêtes de Beaupont a été désactivé par un administrateur. +

+ +

+ Vous ne pouvez désormais plus accéder à votre espace personnel ni participer aux activités proposées. +

+ +

+ ⚠️ Si vous pensez qu’il s’agit d’une erreur ou si vous souhaitez obtenir plus d’informations, + nous vous invitons à contacter l’équipe organisatrice. +

+ +

+ Votre compte pourra être réactivé ultérieurement si nécessaire. +

+ +

+ À bientôt,
+ L’équipe du Comité des fêtes de Beaupont +

+
+ +

+ Cet email a été envoyé automatiquement, merci de ne pas y répondre. +

+ + From 96973f788436b5dd5f9bbc4ef828897be475e812 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 09:53:42 +0100 Subject: [PATCH 08/28] create a mail when the role of the user is updated --- app/Http/Controllers/UserController.php | 10 ++++ app/Mail/UpdateRoleMail.php | 59 ++++++++++++++++++++++ app/Services/GetRole.php | 1 + resources/views/mails/updateRole.blade.php | 35 +++++++++++++ 4 files changed, 105 insertions(+) create mode 100644 app/Mail/UpdateRoleMail.php create mode 100644 resources/views/mails/updateRole.blade.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index df31d4f..00117dd 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -7,6 +7,7 @@ use App\Mail\CreateUserByAdminMail; use App\Mail\DeactivateAccountMail; use App\Mail\DeleteAccountMail; use App\Mail\TestMail; +use App\Mail\UpdateRoleMail; use App\Mail\ValidateMail; use App\Models\Notification; use App\Models\User; @@ -252,6 +253,15 @@ class UserController extends Controller $user->save(); $role = \App\Services\GetRole::getRole($request['role']); + + $data = [ + 'name' => $user->name, + 'lastname' => $user->lastname, + 'role' => $role, + ]; + Mail::to($user->email)->send(new UpdateRoleMail($data)); + + $notification = Notification::create([ 'content' => "Votre rôle à changé pour {$role} !", ]); diff --git a/app/Mail/UpdateRoleMail.php b/app/Mail/UpdateRoleMail.php new file mode 100644 index 0000000..64eb863 --- /dev/null +++ b/app/Mail/UpdateRoleMail.php @@ -0,0 +1,59 @@ +data = $data; + } + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + return new Envelope( + subject: 'Rôle mis à jour - Comité des fêtes de Beaupont', + ); + } + + /** + * Get the message content definition. + */ + public function content(): Content + { + return new Content( + view: 'mails.updateRole', + with: [ + 'name' => $this->data['name'], + 'lastname' => $this->data['lastname'], + 'role' => $this->data['role'], + ] + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/app/Services/GetRole.php b/app/Services/GetRole.php index d1ae26e..d752d7d 100644 --- a/app/Services/GetRole.php +++ b/app/Services/GetRole.php @@ -6,6 +6,7 @@ class GetRole { public static function getRole($role) { + $role = (int)$role; return match ($role) { 1 => "Président", 2 => "Gérant", diff --git a/resources/views/mails/updateRole.blade.php b/resources/views/mails/updateRole.blade.php new file mode 100644 index 0000000..4b5d00a --- /dev/null +++ b/resources/views/mails/updateRole.blade.php @@ -0,0 +1,35 @@ + + + + + + Rôle mis à jour + + +
+

Bonjour {{ $name }} {{ $lastname }},

+ +

+ Votre rôle sur le site de gestion des bénévoles du Comité des fêtes de Beaupont + a été mis à jour par un administrateur. +

+ +

+ Vous êtes désormais : {{ $role }} +

+ +

+ Si vous avez des questions concernant ce changement, n’hésitez pas à contacter l’équipe organisatrice. +

+ +

+ À très bientôt,
+ L’équipe du Comité des fêtes de Beaupont +

+
+ +

+ Cet email a été envoyé automatiquement, merci de ne pas y répondre. +

+ + From e713cc2857778254a6b5d27c90a58362795e4e14 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 09:53:54 +0100 Subject: [PATCH 09/28] create a mail when the role of the user is updated --- app/Http/Controllers/UserController.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 00117dd..fc137b3 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -6,7 +6,6 @@ use App\Events\UserCreated; use App\Mail\CreateUserByAdminMail; use App\Mail\DeactivateAccountMail; use App\Mail\DeleteAccountMail; -use App\Mail\TestMail; use App\Mail\UpdateRoleMail; use App\Mail\ValidateMail; use App\Models\Notification; From 66266d1b4b0d3f7d9a8ff73eb98b4b41e712d30a Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 09:55:10 +0100 Subject: [PATCH 10/28] remove notification deletion code when validating an account --- app/Http/Controllers/UserController.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index fc137b3..7b6f2da 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -212,13 +212,6 @@ class UserController extends Controller try { $user = User::find($id); $content = "Nouvelle demande d'inscription : {$user->name} {$user->lastname}"; - //$notification = Notification::where('user_id', $user->id) - $notification = Notification::where('content', $content)->first(); - - if ($notification) { - $notification->users()->detach(); - $notification->delete(); - } $user->validate = 1; $user->role = 3; From 2271304044db4726e6ddfc809721253364b8b067 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 10:00:47 +0100 Subject: [PATCH 11/28] create a mail when a user registered --- app/Http/Controllers/UserController.php | 12 ++++- app/Mail/RegisterMail.php | 60 ++++++++++++++++++++++++ resources/views/mails/register.blade.php | 38 +++++++++++++++ 3 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 app/Mail/RegisterMail.php create mode 100644 resources/views/mails/register.blade.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 7b6f2da..8d0e25a 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -6,6 +6,7 @@ use App\Events\UserCreated; use App\Mail\CreateUserByAdminMail; use App\Mail\DeactivateAccountMail; use App\Mail\DeleteAccountMail; +use App\Mail\RegisterMail; use App\Mail\UpdateRoleMail; use App\Mail\ValidateMail; use App\Models\Notification; @@ -58,9 +59,18 @@ class UserController extends Controller $notification->users()->attach( $admins->pluck('id')->toArray() ); - broadcast(new UserCreated($user)); + foreach ($admins as $admin) { + $data = [ + 'adminName' => $admin->name, + 'adminLastname' => $admin->lastname, + 'userName' => $user->name, + 'userLastname' => $user->lastname, + ]; + Mail::to($admin->email)->send(new RegisterMail($data)); + } + return response()->json(['message' => 'User created successfully']); } diff --git a/app/Mail/RegisterMail.php b/app/Mail/RegisterMail.php new file mode 100644 index 0000000..d572676 --- /dev/null +++ b/app/Mail/RegisterMail.php @@ -0,0 +1,60 @@ +data = $data; + } + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + return new Envelope( + subject: 'Nouvelle demande de validation - Comité des fêtes de Beaupont', + ); + } + + /** + * Get the message content definition. + */ + public function content(): Content + { + return new Content( + view: 'mails.register', + with: [ + 'adminName' => $this->data['adminName'], + 'adminLastname' => $this->data['adminLastname'], + 'userName' => $this->data['userName'], + 'userLastname' => $this->data['userLastname'], + ] + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/resources/views/mails/register.blade.php b/resources/views/mails/register.blade.php new file mode 100644 index 0000000..c92d7d3 --- /dev/null +++ b/resources/views/mails/register.blade.php @@ -0,0 +1,38 @@ + + + + + + Nouvelle demande de validation + + +
+

Bonjour {{ $adminName }} {{ $adminLastname }},

+ +

+ L’utilisateur {{ $userName }} {{ $userLastname }} a créé un compte + qui est maintenant en attente de validation sur le site du Comité des fêtes de Beaupont. +

+ +

+ + Valider ce compte + +

+ +

+ Vous pouvez cliquer sur le bouton ci-dessus pour vous rendre sur la page permettant de valider le compte. +

+ +

+ À très bientôt,
+ L’équipe du Comité des fêtes de Beaupont +

+
+ +

+ Cet email a été envoyé automatiquement, merci de ne pas y répondre. +

+ + From f3d6f6bd113f727cc29990fee750fa83819d72e5 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 10:06:12 +0100 Subject: [PATCH 12/28] create a mail when an event is deleted to the participants --- app/Http/Controllers/EventsController.php | 11 ++++ app/Mail/EventParticipationCancelledMail.php | 59 +++++++++++++++++++ .../eventParticipationCancelled.blade.php | 32 ++++++++++ 3 files changed, 102 insertions(+) create mode 100644 app/Mail/EventParticipationCancelledMail.php create mode 100644 resources/views/mails/eventParticipationCancelled.blade.php diff --git a/app/Http/Controllers/EventsController.php b/app/Http/Controllers/EventsController.php index b26b49e..2aed09d 100644 --- a/app/Http/Controllers/EventsController.php +++ b/app/Http/Controllers/EventsController.php @@ -3,12 +3,15 @@ namespace App\Http\Controllers; use App\Events\EventParticipationCancelled; +use App\Mail\EventParticipationCancelledMail; +use App\Mail\ValidateMail; use App\Models\Events; use App\Models\Task; use Illuminate\Http\Request; use Illuminate\Http\JsonResponse; use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Log; +use Illuminate\Support\Facades\Mail; class EventsController extends Controller @@ -100,6 +103,14 @@ class EventsController extends Controller $user->id, $event )); + + $data = [ + 'name' => $user->name, + 'lastname' => $user->lastname, + 'eventName' => $event->name, + ]; + Mail::to($user->email)->send(new EventParticipationCancelledMail($data)); + } $event->delete(); diff --git a/app/Mail/EventParticipationCancelledMail.php b/app/Mail/EventParticipationCancelledMail.php new file mode 100644 index 0000000..2b73159 --- /dev/null +++ b/app/Mail/EventParticipationCancelledMail.php @@ -0,0 +1,59 @@ +data = $data; + } + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + return new Envelope( + subject: 'Evénement supprimé - Comité des fêtes de Beaupont', + ); + } + + /** + * Get the message content definition. + */ + public function content(): Content + { + return new Content( + view: 'mails.eventParticipationCancelled', + with: [ + 'name' => $this->data['name'], + 'lastname' => $this->data['lastname'], + 'eventName' => $this->data['eventName'], + ] + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/resources/views/mails/eventParticipationCancelled.blade.php b/resources/views/mails/eventParticipationCancelled.blade.php new file mode 100644 index 0000000..2c2c8c6 --- /dev/null +++ b/resources/views/mails/eventParticipationCancelled.blade.php @@ -0,0 +1,32 @@ + + + + + + Événement supprimé + + +
+

Bonjour {{ $name }} {{ $lastname }},

+ +

+ L’événement {{ $eventName }} a été supprimé par un administrateur. + Vous n’y participez donc plus. +

+ +

+ Si vous pensez qu’il s’agit d’une erreur ou si vous souhaitez plus d’informations, + merci de contacter l’équipe du Comité des fêtes de Beaupont. +

+ +

+ À très bientôt,
+ L’équipe du Comité des fêtes de Beaupont +

+
+ +

+ Cet email a été envoyé automatiquement, merci de ne pas y répondre. +

+ + From 431b9eb0bbdd30aae80b0a191b328a8918c3d726 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 10:11:56 +0100 Subject: [PATCH 13/28] improve delete account mail --- resources/views/mails/deleteAccount.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/mails/deleteAccount.blade.php b/resources/views/mails/deleteAccount.blade.php index 7137326..f9c616e 100644 --- a/resources/views/mails/deleteAccount.blade.php +++ b/resources/views/mails/deleteAccount.blade.php @@ -18,8 +18,8 @@ Vous n’avez désormais plus accès à votre espace personnel ni aux services associés.

-

- ⚠️ Si vous n’êtes pas à l’origine de cette action, merci de nous contacter rapidement. +

+ Si vous n’êtes pas à l’origine de cette action, merci de nous contacter rapidement.

From 5d98678d86a26121db2f688b74afa9166950426d Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 10:13:17 +0100 Subject: [PATCH 14/28] improve register mail --- resources/views/mails/register.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/mails/register.blade.php b/resources/views/mails/register.blade.php index c92d7d3..1f6626c 100644 --- a/resources/views/mails/register.blade.php +++ b/resources/views/mails/register.blade.php @@ -27,7 +27,7 @@

À très bientôt,
- L’équipe du Comité des fêtes de Beaupont + L’équipe du Comité des fêtes de Beaupont

From 62cb78859cbd253c507139d198bd0e32c4b4ffc0 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 10:17:24 +0100 Subject: [PATCH 15/28] improve deactivate account mail --- resources/views/mails/deactivateAccount.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/mails/deactivateAccount.blade.php b/resources/views/mails/deactivateAccount.blade.php index 03fd4e3..b1010f5 100644 --- a/resources/views/mails/deactivateAccount.blade.php +++ b/resources/views/mails/deactivateAccount.blade.php @@ -18,8 +18,8 @@ Vous ne pouvez désormais plus accéder à votre espace personnel ni participer aux activités proposées.

-

- ⚠️ Si vous pensez qu’il s’agit d’une erreur ou si vous souhaitez obtenir plus d’informations, +

+ Si vous pensez qu’il s’agit d’une erreur ou si vous souhaitez obtenir plus d’informations, nous vous invitons à contacter l’équipe organisatrice.

From 0057972c2f08a0ca2ba61eee2431e5112ac843f1 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 11:07:58 +0100 Subject: [PATCH 16/28] remove unecessary use --- app/Events/EventParticipationCancelled.php | 3 --- app/Events/TaskParticipationCancelled.php | 3 --- app/Events/VolunteerAssignedToTask.php | 3 --- app/Events/VolunteerUnassignedFromTask.php | 3 --- 4 files changed, 12 deletions(-) diff --git a/app/Events/EventParticipationCancelled.php b/app/Events/EventParticipationCancelled.php index 679fe7e..b9fa258 100644 --- a/app/Events/EventParticipationCancelled.php +++ b/app/Events/EventParticipationCancelled.php @@ -3,11 +3,8 @@ namespace App\Events; use App\Models\Events; -use Illuminate\Broadcasting\Channel; use Illuminate\Broadcasting\InteractsWithSockets; -use Illuminate\Broadcasting\PresenceChannel; use Illuminate\Broadcasting\PrivateChannel; -use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; diff --git a/app/Events/TaskParticipationCancelled.php b/app/Events/TaskParticipationCancelled.php index 2a45dd3..d495807 100644 --- a/app/Events/TaskParticipationCancelled.php +++ b/app/Events/TaskParticipationCancelled.php @@ -4,11 +4,8 @@ namespace App\Events; use App\Models\Events; use App\Models\Task; -use Illuminate\Broadcasting\Channel; use Illuminate\Broadcasting\InteractsWithSockets; -use Illuminate\Broadcasting\PresenceChannel; use Illuminate\Broadcasting\PrivateChannel; -use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; diff --git a/app/Events/VolunteerAssignedToTask.php b/app/Events/VolunteerAssignedToTask.php index 959dc0c..4ba626f 100644 --- a/app/Events/VolunteerAssignedToTask.php +++ b/app/Events/VolunteerAssignedToTask.php @@ -4,11 +4,8 @@ namespace App\Events; use App\Models\Events; use App\Models\Task; -use Illuminate\Broadcasting\Channel; use Illuminate\Broadcasting\InteractsWithSockets; -use Illuminate\Broadcasting\PresenceChannel; use Illuminate\Broadcasting\PrivateChannel; -use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; diff --git a/app/Events/VolunteerUnassignedFromTask.php b/app/Events/VolunteerUnassignedFromTask.php index 5ff4e43..a1ad129 100644 --- a/app/Events/VolunteerUnassignedFromTask.php +++ b/app/Events/VolunteerUnassignedFromTask.php @@ -4,11 +4,8 @@ namespace App\Events; use App\Models\Events; use App\Models\Task; -use Illuminate\Broadcasting\Channel; use Illuminate\Broadcasting\InteractsWithSockets; -use Illuminate\Broadcasting\PresenceChannel; use Illuminate\Broadcasting\PrivateChannel; -use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; From ce887d084602395fac74a35988b1eb2ff7f25109 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 11:33:42 +0100 Subject: [PATCH 17/28] fix broadcast error with event --- app/Http/Controllers/TasksController.php | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/TasksController.php b/app/Http/Controllers/TasksController.php index 55111b8..249cb9f 100644 --- a/app/Http/Controllers/TasksController.php +++ b/app/Http/Controllers/TasksController.php @@ -73,8 +73,8 @@ class TasksController extends Controller } try { - - $task = Task::with('event')->find($request["task_id"]); + $task = Task::find($request["task_id"]); + $event = \App\Models\Events::find($task->events_id); if ($task->users()->where('user_id', $id)->exists()) { return response()->json(["message" => "User already assigned to this task"], 400); @@ -88,10 +88,11 @@ class TasksController extends Controller if($user) { $task->users()->attach($id); + broadcast(new VolunteerAssignedToTask( $user->id, $task, - $task->event + $event )); } @@ -124,7 +125,8 @@ class TasksController extends Controller } try { - $task = Task::with(['users', 'event'])->find($id); + $task = Task::with(['users'])->find($id); + $event = \App\Models\Events::find($task->events_id); if (!$task) { return response()->json(["message" => "Task not found"], 404); @@ -136,7 +138,7 @@ class TasksController extends Controller broadcast(new TaskParticipationCancelled( $user->id, $task, - $task->event + $event )); } @@ -207,7 +209,8 @@ class TasksController extends Controller } try { - $task = Task::with('event')->find($request["task_id"]); + $task = Task::find($request["task_id"]); + $event = \App\Models\Events::find($task->events_id); if (!$task) { return response()->json(["message" => "Task not found"], 404); @@ -226,7 +229,7 @@ class TasksController extends Controller broadcast(new VolunteerUnassignedFromTask( $user->id, $task, - $task->event + $event )); } From 3d8fd6687d086ca4fb6116edbcd923b916550926 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 11:37:47 +0100 Subject: [PATCH 18/28] create a mail when a task is deleted to the participants --- app/Http/Controllers/TasksController.php | 9 +++ app/Mail/TaskParticipationCancelledMail.php | 59 +++++++++++++++++++ .../taskParticipationCancelled.blade.php | 32 ++++++++++ 3 files changed, 100 insertions(+) create mode 100644 app/Mail/TaskParticipationCancelledMail.php create mode 100644 resources/views/mails/taskParticipationCancelled.blade.php diff --git a/app/Http/Controllers/TasksController.php b/app/Http/Controllers/TasksController.php index 249cb9f..3ed7c34 100644 --- a/app/Http/Controllers/TasksController.php +++ b/app/Http/Controllers/TasksController.php @@ -12,6 +12,8 @@ use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Log; +use Illuminate\Support\Facades\Mail; +use App\Mail\TaskParticipationCancelledMail; class TasksController extends Controller { @@ -140,6 +142,13 @@ class TasksController extends Controller $task, $event )); + + $data = [ + 'name' => $user->name, + 'lastname' => $user->lastname, + 'taskName' => $task->name, + ]; + Mail::to($user->email)->send(new TaskParticipationCancelledMail($data)); } $task->delete(); diff --git a/app/Mail/TaskParticipationCancelledMail.php b/app/Mail/TaskParticipationCancelledMail.php new file mode 100644 index 0000000..2120c16 --- /dev/null +++ b/app/Mail/TaskParticipationCancelledMail.php @@ -0,0 +1,59 @@ +data = $data; + } + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + return new Envelope( + subject: 'Tâche supprimé - Comité des fêtes de Beaupont', + ); + } + + /** + * Get the message content definition. + */ + public function content(): Content + { + return new Content( + view: 'mails.taskParticipationCancelled', + with: [ + 'name' => $this->data['name'], + 'lastname' => $this->data['lastname'], + 'taskName' => $this->data['taskName'], + ] + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/resources/views/mails/taskParticipationCancelled.blade.php b/resources/views/mails/taskParticipationCancelled.blade.php new file mode 100644 index 0000000..7eb465b --- /dev/null +++ b/resources/views/mails/taskParticipationCancelled.blade.php @@ -0,0 +1,32 @@ + + + + + + Événement supprimé + + +
+

Bonjour {{ $name }} {{ $lastname }},

+ +

+ La tâche {{ $taskName }} a été supprimé par un administrateur. + Vous n’y participez donc plus. +

+ +

+ Si vous pensez qu’il s’agit d’une erreur ou si vous souhaitez plus d’informations, + merci de contacter l’équipe du Comité des fêtes de Beaupont. +

+ +

+ À très bientôt,
+ L’équipe du Comité des fêtes de Beaupont +

+
+ +

+ Cet email a été envoyé automatiquement, merci de ne pas y répondre. +

+ + From 0c04694c3472eb3e3c3d7f33a1175600892a7c73 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 11:44:23 +0100 Subject: [PATCH 19/28] fix spelling in taskParticipationCancelled blade --- resources/views/mails/taskParticipationCancelled.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/mails/taskParticipationCancelled.blade.php b/resources/views/mails/taskParticipationCancelled.blade.php index 7eb465b..a6e287a 100644 --- a/resources/views/mails/taskParticipationCancelled.blade.php +++ b/resources/views/mails/taskParticipationCancelled.blade.php @@ -3,7 +3,7 @@ - Événement supprimé + Tâche supprimée
From 2921cbdcbdffaa007fc6609ee88976c041315a5b Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 11:48:54 +0100 Subject: [PATCH 20/28] create a mail when a user is assigned to a task by an administrator --- app/Http/Controllers/TasksController.php | 16 +++-- app/Mail/TaskParticipationCancelledMail.php | 2 +- app/Mail/VolunteerAssignToTaskMail.php | 61 +++++++++++++++++++ .../mails/volunteerAssignToTask.blade.php | 32 ++++++++++ 4 files changed, 104 insertions(+), 7 deletions(-) create mode 100644 app/Mail/VolunteerAssignToTaskMail.php create mode 100644 resources/views/mails/volunteerAssignToTask.blade.php diff --git a/app/Http/Controllers/TasksController.php b/app/Http/Controllers/TasksController.php index 3ed7c34..b3bc29d 100644 --- a/app/Http/Controllers/TasksController.php +++ b/app/Http/Controllers/TasksController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers; use App\Events\TaskParticipationCancelled; use App\Events\VolunteerAssignedToTask; use App\Events\VolunteerUnassignedFromTask; +use App\Mail\VolunteerAssignToTaskMail; use App\Models\Events; use App\Models\Task; use App\Models\User; @@ -96,6 +97,15 @@ class TasksController extends Controller $task, $event )); + + $data = [ + 'name' => $user->name, + 'lastname' => $user->lastname, + 'taskName' => $task->name, + 'start' => $task->start, + 'end' => $task->end, + ]; + Mail::to($user->email)->send(new VolunteerAssignToTaskMail($data)); } return response()->json(['message' => "Task assigned"], 200); @@ -186,10 +196,6 @@ class TasksController extends Controller } } - - - - public function unassignSelf(Request $request): JsonResponse { try { $task = Task::find($request["task_id"]); @@ -209,8 +215,6 @@ class TasksController extends Controller } } - - public function unassignUser(Request $request, int $id): JsonResponse { if(Gate::denies('unassignOther', Task::class)) { diff --git a/app/Mail/TaskParticipationCancelledMail.php b/app/Mail/TaskParticipationCancelledMail.php index 2120c16..9e59614 100644 --- a/app/Mail/TaskParticipationCancelledMail.php +++ b/app/Mail/TaskParticipationCancelledMail.php @@ -28,7 +28,7 @@ class TaskParticipationCancelledMail extends Mailable public function envelope(): Envelope { return new Envelope( - subject: 'Tâche supprimé - Comité des fêtes de Beaupont', + subject: 'Tâche supprimée - Comité des fêtes de Beaupont', ); } diff --git a/app/Mail/VolunteerAssignToTaskMail.php b/app/Mail/VolunteerAssignToTaskMail.php new file mode 100644 index 0000000..a190c78 --- /dev/null +++ b/app/Mail/VolunteerAssignToTaskMail.php @@ -0,0 +1,61 @@ +data = $data; + } + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + return new Envelope( + subject: 'Assignation - Comité des fêtes de Beaupont', + ); + } + + /** + * Get the message content definition. + */ + public function content(): Content + { + return new Content( + view: 'mails.volunteerAssignToTask', + with: [ + 'name' => $this->data['name'], + 'lastname' => $this->data['lastname'], + 'taskName' => $this->data['taskName'], + 'start' => $this->data['start'], + 'end' => $this->data['end'], + ] + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/resources/views/mails/volunteerAssignToTask.blade.php b/resources/views/mails/volunteerAssignToTask.blade.php new file mode 100644 index 0000000..cfebaba --- /dev/null +++ b/resources/views/mails/volunteerAssignToTask.blade.php @@ -0,0 +1,32 @@ + + + + + + Assignation + + +
+

Bonjour {{ $name }} {{ $lastname }},

+ +

+ Vous avez été assigné à la tâche {{ $taskName }} par un administrateur. + Cette tâche aura lieu de {{ $start }} à {{ $end }}. +

+ +

+ Si vous pensez qu’il s’agit d’une erreur ou si vous souhaitez plus d’informations, + merci de contacter l’équipe du Comité des fêtes de Beaupont. +

+ +

+ À très bientôt,
+ L’équipe du Comité des fêtes de Beaupont +

+
+ +

+ Cet email a été envoyé automatiquement, merci de ne pas y répondre. +

+ + From 92de307017b80390dc91f86b21c39896b67f4b0a Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 16:14:35 +0100 Subject: [PATCH 21/28] create a mail when a user is unassigned to a task by an administrator --- app/Http/Controllers/TasksController.php | 10 +++ app/Mail/VolunteerUnassignToTaskMail.php | 61 +++++++++++++++++++ .../mails/volunteerUnassignToTask.blade.php | 32 ++++++++++ 3 files changed, 103 insertions(+) create mode 100644 app/Mail/VolunteerUnassignToTaskMail.php create mode 100644 resources/views/mails/volunteerUnassignToTask.blade.php diff --git a/app/Http/Controllers/TasksController.php b/app/Http/Controllers/TasksController.php index b3bc29d..f57199c 100644 --- a/app/Http/Controllers/TasksController.php +++ b/app/Http/Controllers/TasksController.php @@ -6,6 +6,7 @@ use App\Events\TaskParticipationCancelled; use App\Events\VolunteerAssignedToTask; use App\Events\VolunteerUnassignedFromTask; use App\Mail\VolunteerAssignToTaskMail; +use App\Mail\VolunteerUnassignToTaskMail; use App\Models\Events; use App\Models\Task; use App\Models\User; @@ -244,6 +245,15 @@ class TasksController extends Controller $task, $event )); + + $data = [ + 'name' => $user->name, + 'lastname' => $user->lastname, + 'taskName' => $task->name, + 'start' => $task->start, + 'end' => $task->end, + ]; + Mail::to($user->email)->send(new VolunteerUnassignToTaskMail($data)); } return response()->json(['message' => "User unassigned successfully"], 200); diff --git a/app/Mail/VolunteerUnassignToTaskMail.php b/app/Mail/VolunteerUnassignToTaskMail.php new file mode 100644 index 0000000..7af6317 --- /dev/null +++ b/app/Mail/VolunteerUnassignToTaskMail.php @@ -0,0 +1,61 @@ +data = $data; + } + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + return new Envelope( + subject: 'Désassignation - Comité des fêtes de Beaupont', + ); + } + + /** + * Get the message content definition. + */ + public function content(): Content + { + return new Content( + view: 'mails.volunteerUnassignToTask', + with: [ + 'name' => $this->data['name'], + 'lastname' => $this->data['lastname'], + 'taskName' => $this->data['taskName'], + 'start' => $this->data['start'], + 'end' => $this->data['end'], + ] + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/resources/views/mails/volunteerUnassignToTask.blade.php b/resources/views/mails/volunteerUnassignToTask.blade.php new file mode 100644 index 0000000..115747f --- /dev/null +++ b/resources/views/mails/volunteerUnassignToTask.blade.php @@ -0,0 +1,32 @@ + + + + + + Désassignation + + +
+

Bonjour {{ $name }} {{ $lastname }},

+ +

+ Vous avez été désassigné de la tâche {{ $taskName }} par un administrateur. + Cette tâche avait lieu de {{ $start }} à {{ $end }}. Vous n'y participez donc plus. +

+ +

+ Si vous pensez qu’il s’agit d’une erreur ou si vous souhaitez plus d’informations, + merci de contacter l’équipe du Comité des fêtes de Beaupont. +

+ +

+ À très bientôt,
+ L’équipe du Comité des fêtes de Beaupont +

+
+ +

+ Cet email a été envoyé automatiquement, merci de ne pas y répondre. +

+ + From 6c679596bdc8b93b8282cf087a3d27707f003d1f Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 16:18:12 +0100 Subject: [PATCH 22/28] add date to eventParticipationCancelled mail --- app/Http/Controllers/EventsController.php | 2 ++ app/Mail/EventParticipationCancelledMail.php | 2 ++ resources/views/mails/eventParticipationCancelled.blade.php | 2 +- resources/views/mails/volunteerUnassignToTask.blade.php | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/EventsController.php b/app/Http/Controllers/EventsController.php index 2aed09d..9a321fc 100644 --- a/app/Http/Controllers/EventsController.php +++ b/app/Http/Controllers/EventsController.php @@ -108,6 +108,8 @@ class EventsController extends Controller 'name' => $user->name, 'lastname' => $user->lastname, 'eventName' => $event->name, + 'start' => $event->start, + 'end' => $event->end, ]; Mail::to($user->email)->send(new EventParticipationCancelledMail($data)); diff --git a/app/Mail/EventParticipationCancelledMail.php b/app/Mail/EventParticipationCancelledMail.php index 2b73159..1255c67 100644 --- a/app/Mail/EventParticipationCancelledMail.php +++ b/app/Mail/EventParticipationCancelledMail.php @@ -43,6 +43,8 @@ class EventParticipationCancelledMail extends Mailable 'name' => $this->data['name'], 'lastname' => $this->data['lastname'], 'eventName' => $this->data['eventName'], + 'start' => $this->data['start'], + 'end' => $this->data['end'], ] ); } diff --git a/resources/views/mails/eventParticipationCancelled.blade.php b/resources/views/mails/eventParticipationCancelled.blade.php index 2c2c8c6..6a0d352 100644 --- a/resources/views/mails/eventParticipationCancelled.blade.php +++ b/resources/views/mails/eventParticipationCancelled.blade.php @@ -11,7 +11,7 @@

L’événement {{ $eventName }} a été supprimé par un administrateur. - Vous n’y participez donc plus. + Vous n’y participez donc plus. Cet événement avait lieu de {{ $start }} à {{ $end }}.

diff --git a/resources/views/mails/volunteerUnassignToTask.blade.php b/resources/views/mails/volunteerUnassignToTask.blade.php index 115747f..d8f65dd 100644 --- a/resources/views/mails/volunteerUnassignToTask.blade.php +++ b/resources/views/mails/volunteerUnassignToTask.blade.php @@ -11,7 +11,7 @@

Vous avez été désassigné de la tâche {{ $taskName }} par un administrateur. - Cette tâche avait lieu de {{ $start }} à {{ $end }}. Vous n'y participez donc plus. + Vous n'y participez donc plus. Cette tâche avait lieu de {{ $start }} à {{ $end }}.

From 2ca3100b3c70cc14f837f3d2f3c24b53853dfae9 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 16:30:13 +0100 Subject: [PATCH 23/28] create a formatDate service and method --- app/Services/FormatDate.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 app/Services/FormatDate.php diff --git a/app/Services/FormatDate.php b/app/Services/FormatDate.php new file mode 100644 index 0000000..aece902 --- /dev/null +++ b/app/Services/FormatDate.php @@ -0,0 +1,13 @@ +format('d/m/Y, H:i'); + } + +} From 400d70ff7e9579655f6235f22589340d6a4a2147 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Wed, 18 Mar 2026 16:30:27 +0100 Subject: [PATCH 24/28] use formatDate method --- app/Http/Controllers/TasksController.php | 2 ++ app/Mail/EventParticipationCancelledMail.php | 5 +++-- app/Mail/TaskParticipationCancelledMail.php | 3 +++ app/Mail/VolunteerAssignToTaskMail.php | 5 +++-- app/Mail/VolunteerUnassignToTaskMail.php | 5 +++-- resources/views/mails/eventParticipationCancelled.blade.php | 2 +- resources/views/mails/taskParticipationCancelled.blade.php | 2 +- resources/views/mails/volunteerAssignToTask.blade.php | 2 +- resources/views/mails/volunteerUnassignToTask.blade.php | 2 +- 9 files changed, 18 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/TasksController.php b/app/Http/Controllers/TasksController.php index f57199c..74c06e6 100644 --- a/app/Http/Controllers/TasksController.php +++ b/app/Http/Controllers/TasksController.php @@ -158,6 +158,8 @@ class TasksController extends Controller 'name' => $user->name, 'lastname' => $user->lastname, 'taskName' => $task->name, + 'start' => $event->start, + 'end' => $task->end, ]; Mail::to($user->email)->send(new TaskParticipationCancelledMail($data)); } diff --git a/app/Mail/EventParticipationCancelledMail.php b/app/Mail/EventParticipationCancelledMail.php index 1255c67..bcb8e7a 100644 --- a/app/Mail/EventParticipationCancelledMail.php +++ b/app/Mail/EventParticipationCancelledMail.php @@ -2,6 +2,7 @@ namespace App\Mail; +use App\Services\FormatDate; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; @@ -43,8 +44,8 @@ class EventParticipationCancelledMail extends Mailable 'name' => $this->data['name'], 'lastname' => $this->data['lastname'], 'eventName' => $this->data['eventName'], - 'start' => $this->data['start'], - 'end' => $this->data['end'], + 'start' => FormatDate::formatDate($this->data['start']), + 'end' => FormatDate::formatDate($this->data['end']), ] ); } diff --git a/app/Mail/TaskParticipationCancelledMail.php b/app/Mail/TaskParticipationCancelledMail.php index 9e59614..7eeacaf 100644 --- a/app/Mail/TaskParticipationCancelledMail.php +++ b/app/Mail/TaskParticipationCancelledMail.php @@ -2,6 +2,7 @@ namespace App\Mail; +use App\Services\FormatDate; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; @@ -43,6 +44,8 @@ class TaskParticipationCancelledMail extends Mailable 'name' => $this->data['name'], 'lastname' => $this->data['lastname'], 'taskName' => $this->data['taskName'], + 'end' => FormatDate::formatDate($this->data['end']), + 'start' => FormatDate::formatDate($this->data['start']), ] ); } diff --git a/app/Mail/VolunteerAssignToTaskMail.php b/app/Mail/VolunteerAssignToTaskMail.php index a190c78..99c722b 100644 --- a/app/Mail/VolunteerAssignToTaskMail.php +++ b/app/Mail/VolunteerAssignToTaskMail.php @@ -2,6 +2,7 @@ namespace App\Mail; +use App\Services\FormatDate; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; @@ -43,8 +44,8 @@ class VolunteerAssignToTaskMail extends Mailable 'name' => $this->data['name'], 'lastname' => $this->data['lastname'], 'taskName' => $this->data['taskName'], - 'start' => $this->data['start'], - 'end' => $this->data['end'], + 'start' => FormatDate::formatDate($this->data['start']), + 'end' => FormatDate::formatDate($this->data['end']), ] ); } diff --git a/app/Mail/VolunteerUnassignToTaskMail.php b/app/Mail/VolunteerUnassignToTaskMail.php index 7af6317..506d0c3 100644 --- a/app/Mail/VolunteerUnassignToTaskMail.php +++ b/app/Mail/VolunteerUnassignToTaskMail.php @@ -8,6 +8,7 @@ use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Envelope; use Illuminate\Queue\SerializesModels; +use App\Services\FormatDate; class VolunteerUnassignToTaskMail extends Mailable { @@ -43,8 +44,8 @@ class VolunteerUnassignToTaskMail extends Mailable 'name' => $this->data['name'], 'lastname' => $this->data['lastname'], 'taskName' => $this->data['taskName'], - 'start' => $this->data['start'], - 'end' => $this->data['end'], + 'start' => FormatDate::formatDate($this->data['start']), + 'end' => FormatDate::formatDate($this->data['end']), ] ); } diff --git a/resources/views/mails/eventParticipationCancelled.blade.php b/resources/views/mails/eventParticipationCancelled.blade.php index 6a0d352..9d2a4c2 100644 --- a/resources/views/mails/eventParticipationCancelled.blade.php +++ b/resources/views/mails/eventParticipationCancelled.blade.php @@ -11,7 +11,7 @@

L’événement {{ $eventName }} a été supprimé par un administrateur. - Vous n’y participez donc plus. Cet événement avait lieu de {{ $start }} à {{ $end }}. + Vous n’y participez donc plus. Cet événement avait lieu du {{ $start }} au {{ $end }}.

diff --git a/resources/views/mails/taskParticipationCancelled.blade.php b/resources/views/mails/taskParticipationCancelled.blade.php index a6e287a..861520c 100644 --- a/resources/views/mails/taskParticipationCancelled.blade.php +++ b/resources/views/mails/taskParticipationCancelled.blade.php @@ -11,7 +11,7 @@

La tâche {{ $taskName }} a été supprimé par un administrateur. - Vous n’y participez donc plus. + Vous n’y participez donc plus. Cette tâche avait lieu du {{ $start }} au {{ $end }}.

diff --git a/resources/views/mails/volunteerAssignToTask.blade.php b/resources/views/mails/volunteerAssignToTask.blade.php index cfebaba..55c4057 100644 --- a/resources/views/mails/volunteerAssignToTask.blade.php +++ b/resources/views/mails/volunteerAssignToTask.blade.php @@ -11,7 +11,7 @@

Vous avez été assigné à la tâche {{ $taskName }} par un administrateur. - Cette tâche aura lieu de {{ $start }} à {{ $end }}. + Cette tâche aura lieu du {{ $start }} au {{ $end }}.

diff --git a/resources/views/mails/volunteerUnassignToTask.blade.php b/resources/views/mails/volunteerUnassignToTask.blade.php index d8f65dd..052c68e 100644 --- a/resources/views/mails/volunteerUnassignToTask.blade.php +++ b/resources/views/mails/volunteerUnassignToTask.blade.php @@ -11,7 +11,7 @@

Vous avez été désassigné de la tâche {{ $taskName }} par un administrateur. - Vous n'y participez donc plus. Cette tâche avait lieu de {{ $start }} à {{ $end }}. + Vous n'y participez donc plus. Cette tâche avait lieu du {{ $start }} au {{ $end }}.

From 69660270965a641f055451890775fe0808a6f9be Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Thu, 19 Mar 2026 08:41:07 +0100 Subject: [PATCH 25/28] check if the event is future or ongoing to send email and notification on deletion --- app/Http/Controllers/EventsController.php | 33 ++++++++++++----------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/app/Http/Controllers/EventsController.php b/app/Http/Controllers/EventsController.php index 9a321fc..e12d8b8 100644 --- a/app/Http/Controllers/EventsController.php +++ b/app/Http/Controllers/EventsController.php @@ -4,7 +4,6 @@ namespace App\Http\Controllers; use App\Events\EventParticipationCancelled; use App\Mail\EventParticipationCancelledMail; -use App\Mail\ValidateMail; use App\Models\Events; use App\Models\Task; use Illuminate\Http\Request; @@ -12,6 +11,7 @@ use Illuminate\Http\JsonResponse; use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Mail; +use Carbon\Carbon; class EventsController extends Controller @@ -89,6 +89,8 @@ class EventsController extends Controller try { $event = Events::with('tasks.users')->find($id); + Log::info($event); + Log::info($event->tasks); if (!$event) { return response()->json(['message' => 'Event not found'], 404); @@ -98,21 +100,22 @@ class EventsController extends Controller return $task->users; })->unique('id'); - foreach ($participants as $user) { - broadcast(new EventParticipationCancelled( - $user->id, - $event - )); - - $data = [ - 'name' => $user->name, - 'lastname' => $user->lastname, - 'eventName' => $event->name, - 'start' => $event->start, - 'end' => $event->end, - ]; - Mail::to($user->email)->send(new EventParticipationCancelledMail($data)); + if (Carbon::now()->lessThanOrEqualTo($event->end)) { + foreach ($participants as $user) { + broadcast(new EventParticipationCancelled( + $user->id, + $event + )); + $data = [ + 'name' => $user->name, + 'lastname' => $user->lastname, + 'eventName' => $event->name, + 'start' => $event->start, + 'end' => $event->end, + ]; + Mail::to($user->email)->send(new EventParticipationCancelledMail($data)); + } } $event->delete(); From 77d3efc5557ba73d7447ec0220924ba9d385ed49 Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Thu, 19 Mar 2026 08:42:20 +0100 Subject: [PATCH 26/28] check if the task is future or ongoing to send email and notification on deletion --- app/Http/Controllers/TasksController.php | 31 +++++++++++++----------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/app/Http/Controllers/TasksController.php b/app/Http/Controllers/TasksController.php index 74c06e6..30c061e 100644 --- a/app/Http/Controllers/TasksController.php +++ b/app/Http/Controllers/TasksController.php @@ -10,6 +10,7 @@ use App\Mail\VolunteerUnassignToTaskMail; use App\Models\Events; use App\Models\Task; use App\Models\User; +use Carbon\Carbon; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Gate; @@ -147,21 +148,23 @@ class TasksController extends Controller $participants = $task->users; - foreach ($participants as $user) { - broadcast(new TaskParticipationCancelled( - $user->id, - $task, - $event - )); + if (Carbon::now()->lessThanOrEqualTo($task->end)) { + foreach ($participants as $user) { + broadcast(new TaskParticipationCancelled( + $user->id, + $task, + $event + )); - $data = [ - 'name' => $user->name, - 'lastname' => $user->lastname, - 'taskName' => $task->name, - 'start' => $event->start, - 'end' => $task->end, - ]; - Mail::to($user->email)->send(new TaskParticipationCancelledMail($data)); + $data = [ + 'name' => $user->name, + 'lastname' => $user->lastname, + 'taskName' => $task->name, + 'start' => $event->start, + 'end' => $task->end, + ]; + Mail::to($user->email)->send(new TaskParticipationCancelledMail($data)); + } } $task->delete(); From 5d256637ecfcd184417465572bafa1dd36668d3e Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Thu, 19 Mar 2026 08:43:53 +0100 Subject: [PATCH 27/28] check if the task is future or ongoing to send email and notification on assign user --- app/Http/Controllers/TasksController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/TasksController.php b/app/Http/Controllers/TasksController.php index 30c061e..abb76bf 100644 --- a/app/Http/Controllers/TasksController.php +++ b/app/Http/Controllers/TasksController.php @@ -91,7 +91,7 @@ class TasksController extends Controller $user = User::find($id); - if($user) { + if($user && Carbon::now()->lessThanOrEqualTo($task->end)) { $task->users()->attach($id); broadcast(new VolunteerAssignedToTask( From ad6a0f6e90e44ee0aeb2d546eed0dd0dd9f2b4fc Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Thu, 19 Mar 2026 08:44:12 +0100 Subject: [PATCH 28/28] check if the task is future or ongoing to send email and notification on unassign user --- app/Http/Controllers/TasksController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/TasksController.php b/app/Http/Controllers/TasksController.php index abb76bf..b456470 100644 --- a/app/Http/Controllers/TasksController.php +++ b/app/Http/Controllers/TasksController.php @@ -242,7 +242,7 @@ class TasksController extends Controller $user = User::find($id); - if ($user) { + if ($user && Carbon::now()->lessThanOrEqualTo($task->end)) { $task->users()->detach($id); broadcast(new VolunteerUnassignedFromTask(