diff --git a/public/upload/image/profile/pp-pro-673dcebc17a81.jpg b/public/upload/image/profile/pp-pro-673dcebc17a81.jpg new file mode 100644 index 0000000..66e03d6 Binary files /dev/null and b/public/upload/image/profile/pp-pro-673dcebc17a81.jpg differ diff --git a/src/Controller/AdminController.php b/src/Controller/AdminController.php index b3608e4..f1c181b 100644 --- a/src/Controller/AdminController.php +++ b/src/Controller/AdminController.php @@ -19,22 +19,29 @@ use Symfony\Component\Mailer\MailerInterface; use Symfony\Component\Mime\Email; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; +use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; class AdminController extends AbstractController { #[Route('/admin', name: 'app_admin')] - public function index(): Response + public function index(TokenStorageInterface $tokenStorage): Response { + $token = $tokenStorage->getToken(); + $userConnect = $token?->getUser(); return $this->render('admin/index.html.twig', [ + 'profile' => $userConnect, 'controller_name' => 'AdminController', ]); } //Gestion des utilisateurs #[Route('/admin/user', name: 'app_adminUser')] - public function adminUser(ParticipantRepository $participantRepository): Response + public function adminUser(ParticipantRepository $participantRepository, TokenStorageInterface $tokenStorage): Response { + $token = $tokenStorage->getToken(); + $userConnect = $token?->getUser(); return $this->render('admin/user.html.twig', [ + 'profile' => $userConnect, 'participants' => $participantRepository->findAll(), 'controller_name' => 'AdminController', ]); @@ -166,7 +173,7 @@ class AdminController extends AbstractController } } #[Route('/admin/user/import', name: 'participant_import', methods: ['POST'])] - public function import(Request $request, EntityManagerInterface $em): RedirectResponse + public function import(Request $request, EntityManagerInterface $em, MailerInterface $mailer, UrlGeneratorInterface $urlGenerator): RedirectResponse { $file = $request->files->get('csv_file'); if ($file) { @@ -184,6 +191,39 @@ class AdminController extends AbstractController $participant->setRoles(explode('|', $row[7])); $participant->setPassword(password_hash("aChanger44!", PASSWORD_BCRYPT)); $em->persist($participant); + + // Générer un token unique + $token = bin2hex(random_bytes(32)); + + // Enregistrer le token dans la base de données + $passwordResetToken = new PasswordResetToken(); + $passwordResetToken->setToken($token) + ->setEmail($participant->getEmail()) + ->setCreatedAt(new \DateTime()); + + $em->persist($passwordResetToken); + + // Générer un lien de réinitialisation + $resetLink = $urlGenerator->generate( + 'app_password_reset', + ['token' => $token], + UrlGeneratorInterface::ABSOLUTE_URL + ); + + // Envoyer un email de notification + $email = (new Email()) + ->from('contact@sortir.com') + ->to($participant->getEmail()) + ->subject('Sortir.com | Bienvenue sur notre site !') + ->html(" +
Un administrateur du site vous a créé un compte !
+Terminer la création de cotre compte : Sortir.com
+Toute l'équipe de Sortir vous souhaite la bienvenue !
+ "); + + $mailer->send($email); + } $em->flush(); } @@ -216,9 +256,12 @@ class AdminController extends AbstractController //Gestion des villes #[Route('/admin/city', name: 'app_adminCity')] - public function adminCity(VilleRepository $villeRepository): Response + public function adminCity(VilleRepository $villeRepository, TokenStorageInterface $tokenStorage): Response { + $token = $tokenStorage->getToken(); + $userConnect = $token?->getUser(); return $this->render('admin/city.html.twig', [ + 'profile' => $userConnect, 'citys' => $villeRepository->findAll(), 'controller_name' => 'AdminController', ]); @@ -275,9 +318,12 @@ class AdminController extends AbstractController //Gestion des sites #[Route('/admin/site', name: 'app_adminSite')] - public function adminSite(SiteRepository $siteRepository): Response + public function adminSite(SiteRepository $siteRepository, TokenStorageInterface $tokenStorage): Response { + $token = $tokenStorage->getToken(); + $userConnect = $token?->getUser(); return $this->render('admin/site.html.twig', [ + 'profile' => $userConnect, 'sites' => $siteRepository->findAll(), 'controller_name' => 'AdminController', ]); diff --git a/src/Controller/MainController.php b/src/Controller/MainController.php index 878d088..559e3ff 100644 --- a/src/Controller/MainController.php +++ b/src/Controller/MainController.php @@ -5,12 +5,17 @@ namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; +use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; class MainController extends AbstractController { #[Route('/', name: 'home')] - public function index(): Response + public function index(TokenStorageInterface $tokenStorage): Response { - return $this->render('main/index.html.twig'); + $token = $tokenStorage->getToken(); + $userConnect = $token?->getUser(); + return $this->render('main/index.html.twig', [ + 'profile' => $userConnect, + ]); } } diff --git a/src/Controller/PasswordResetController.php b/src/Controller/PasswordResetController.php index 97e4e18..7151314 100644 --- a/src/Controller/PasswordResetController.php +++ b/src/Controller/PasswordResetController.php @@ -93,9 +93,11 @@ class PasswordResetController extends AbstractController $newPassword = $request->request->get('password'); $newPasswordConfirm = $request->request->get('passwordConfirm'); - if ($newPassword.equalTo($newPasswordConfirm)) { + // Vérifier si les mots de passe sont identiques + if ($newPassword !== $newPasswordConfirm) { + // Les mots de passe ne correspondent pas $this->addFlash('error', 'Les mots de passe ne correspondent pas.'); - return $this->redirectToRoute('app_password_reset', ['token' => $token]); + return $this->redirectToRoute('app_password_reset'); // Vous pouvez rediriger vers la page de réinitialisation } if (strlen($newPassword) < 6) { diff --git a/templates/auth/login.html.twig b/templates/auth/login.html.twig index 45d0698..50f66aa 100644 --- a/templates/auth/login.html.twig +++ b/templates/auth/login.html.twig @@ -15,8 +15,11 @@ + + + + + + {% endblock %} diff --git a/templates/main/header.html.twig b/templates/main/header.html.twig index 64e0336..bc5aca9 100644 --- a/templates/main/header.html.twig +++ b/templates/main/header.html.twig @@ -19,16 +19,25 @@