Merge remote-tracking branch 'refs/remotes/origin/main'

- Suppression dump
This commit is contained in:
2025-01-29 10:46:04 +01:00
3 changed files with 38 additions and 7 deletions

View File

@ -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(),
]);
}
}

View File

@ -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.
}
}

View File

@ -23,6 +23,7 @@ class GoogleBooksService
],
]);
// Convertir la réponse JSON en tableau PHP
$dataArray = $response->toArray();