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(