✨ feat(login): Ajoute l'authentification SSO via Keycloak et Discord
Cette modification implémente l'authentification unique (SSO) via
Keycloak et Discord, permettant aux utilisateurs de se connecter
facilement. Ajoute les trads FR.
```
✨ feat(security): Ajoute la route de déconnexion et configure la redirection.
✨ feat(Dto/Ag): Crée les DTOs AgType, AgMembersType et AgOrderType.
✨ feat(Controller/Admin): Implémente la gestion des AG (CRUD complet).
✨ feat(templates/admin): Ajoute les templates pour la gestion des AG.
```
✨ feat(security): Utilise l'email pour l'authentification, crée dashboard admin.
Ajoute le dashboard admin, les membres, les events, et les comptes.
Utilise l'email au lieu du username pour l'authentification.
```
✨ feat(security): Ajoute réinitialisation mot de passe, robots.txt, et traductions.
Ajoute la fonctionnalité de réinitialisation de mot de passe, met à jour le
robots.txt, et ajoute des traductions en français et en anglais.
```
✨ feat(artemis/base): Ajoute des barres latérales basées sur les rôles.
✨ feat(artemis/dashboard): Crée une page de tableau de bord de base.
✨ feat(security): Permet aux utilisateurs ROLE_CUSTOMER d'accéder à /artemis.
🐛 fix(MainframeAttributeListener): Corrige l'affichage du titre du site web.
🐛 fix(Mailer): Supprime le dd() de débogage.
✨ feat(templates): Ajoute un template pour les erreurs de logger.
✨ feat(LoggerService): Ajoute un service de journalisation centralisé.
✨ feat(services): Ajoute un listener Doctrine pour le LoggerService.
✨ feat(security): Ajoute une page pour modifier le mot de passe admin.
✨ feat(Form): Ajoute un formulaire pour modifier le mot de passe admin.
✨ feat(VaultClient): Ajoute un client Vault pour le chiffrement.
✨ feat(HomeController): Ajoute une route de déconnexion.
✨ feat(artemis): Ajoute une page pour gérer les comptes administrateurs.
✨ feat(security): Ajoute un UserChecker pour vérifier l'état du compte.
✨ feat(Exception): Ajoute une exception pour les champs immuables du logger.
✨ feat(AccountLoginRegisterRepository): Ajoute une fonction pour récupérer la dernière connexion.
✨ feat(artemis): Ajoute une page pour lister les serveurs.
✨ feat(artemis): Ajoute une option dans le menu pour les administrateurs.
✨ feat(AccountRepository): Ajoute une fonction pour récupérer les comptes.
✨ feat(settings): Ajoute une page pour les logs d'un compte admin.
✨ feat(EventListener): Ajoute un listener pour la double authentification.
✨ feat(Account): Ajoute un champ pour activer ou désactiver un compte.
✨ feat(AdminFormType): Ajoute un formulaire pour modifier un compte admin.
✨ feat(settings): Ajoute une page globale pour modifier un compte admin.
✨ feat(VaultExtensions): Ajoute des extensions Twig pour Vault.
Ce commit ajoute la fonctionnalité de réinitialisation de mot de passe pour les utilisateurs. Il comprend les éléments suivants :
- Ajout d'un formulaire pour demander la réinitialisation du mot de passe.
- Ajout d'un formulaire pour confirmer la réinitialisation du mot de passe.
- Ajout d'un service pour gérer le processus de réinitialisation du mot de passe.
- Ajout d'un modèle d'e-mail pour envoyer un lien de réinitialisation du mot de passe.
- Mise à jour de la configuration de sécurité pour permettre l'accès aux routes de réinitialisation du mot de passe.
- Ajout d'une icône pour afficher ou masquer les mots de passe
Les changements spécifiques incluent :
- Création des formulaires `RequestPasswordConfirmType` et de son test unitaire `RequestPasswordConfirmTypeTest`.
- Création des templates `forgot-password-confirm.twig` et `mails/artemis/reset.twig`.
- Création des services `ResetPasswordPubscriber` et de l'event `ResetPasswordConfirmEvent`.
- Ajout de la migration pour la table `account_reset_password_request`.
- Modification de la configuration `security.yaml` pour la gestion des rôles.
- Ajout d'un script dans `app.js` pour afficher/masquer le mot de passe.
- Modification du template `login.twig` pour afficher les messages flash.