diff --git a/src/Controller/RegistrationController.php b/src/Controller/RegistrationController.php index 4527a68..c5c4111 100644 --- a/src/Controller/RegistrationController.php +++ b/src/Controller/RegistrationController.php @@ -7,31 +7,39 @@ use App\Form\RegistrationType; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; use Symfony\Component\Routing\Annotation\Route; use Doctrine\ORM\EntityManagerInterface; - class RegistrationController extends AbstractController { private $entityManager; + private $passwordHasher; // Correction du nom de la variable - public function __construct(EntityManagerInterface $entityManager) // Injection du service EntityManagerInterface + public function __construct(EntityManagerInterface $entityManager, UserPasswordHasherInterface $passwordHasher) // Correction ici { $this->entityManager = $entityManager; + $this->passwordHasher = $passwordHasher; } + #[Route('/registration', name: 'app_registration')] - public function register (Request $request): Response + public function register(Request $request): Response { $user = new User(); $form = $this->createForm(RegistrationType::class, $user); - $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - // Utilisation de l'EntityManager injecté + // Hacher le mot de passe avant de persister l'utilisateur + $plainPassword = $user->getPassword(); // Récupération du mot de passe brut + $hashedPassword = $this->passwordHasher->hashPassword($user, $plainPassword); // Hachage du mot de passe + $user->setPassword($hashedPassword); // Remplacer le mot de passe brut par le mot de passe haché + + // Persist de l'utilisateur haché $this->entityManager->persist($user); $this->entityManager->flush(); + // Message flash de succès $this->addFlash('success', 'Votre compte a été créé avec succès !'); return $this->redirectToRoute('home'); } @@ -40,5 +48,4 @@ class RegistrationController extends AbstractController 'form' => $form->createView(), ]); } - } diff --git a/src/Entity/User.php b/src/Entity/User.php index 30dbd37..5761b7c 100644 --- a/src/Entity/User.php +++ b/src/Entity/User.php @@ -4,9 +4,12 @@ namespace App\Entity; use App\Repository\UserRepository; use Doctrine\ORM\Mapping as ORM; +use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface; +use Symfony\Component\Security\Core\User\UserInterface; + #[ORM\Entity(repositoryClass: UserRepository::class)] -class User +class User implements UserInterface, PasswordAuthenticatedUserInterface { #[ORM\Id] #[ORM\GeneratedValue] @@ -92,4 +95,24 @@ class User return $this; } + + public function getSalt(): ?string + { + return null; + } + + public function getRoles(): array + { + // TODO: Implement getRoles() method. + } + + public function eraseCredentials(): void + { + // TODO: Implement eraseCredentials() method. + } + + public function getUserIdentifier(): string + { + // TODO: Implement getUserIdentifier() method. + } } diff --git a/src/services/GoogleService.php b/src/services/GoogleService.php index 97caafa..07b634a 100644 --- a/src/services/GoogleService.php +++ b/src/services/GoogleService.php @@ -23,6 +23,7 @@ class GoogleBooksService ], ]); + // Convertir la réponse JSON en tableau PHP $dataArray = $response->toArray();