feat(ReserverController): Crée la logique d'enregistrement client et envoie un email de bienvenue.
```
This commit is contained in:
Serreau Jovann
2026-01-23 09:25:11 +01:00
parent ab3fba7a9c
commit 59a1989076
4 changed files with 272 additions and 97 deletions

View File

@@ -4,6 +4,7 @@ namespace App\Controller;
use App\Entity\Account;
use App\Entity\AccountResetPasswordRequest;
use App\Entity\Customer;
use App\Entity\Product;
use App\Form\RequestPasswordConfirmType;
use App\Form\RequestPasswordRequestType;
@@ -123,11 +124,45 @@ class ReserverController extends AbstractController
return $this->redirectToRoute('reservation');
}
#[Route('/reservation/creation-compte', name: 'reservation_register')]
public function revervationRegister(): Response
{
return $this->render('revervation/register.twig',[
public function revervationRegister(
Request $request,
Mailer $mailer,
EntityManagerInterface $em,
UserPasswordHasherInterface $hasher
): Response {
if ($request->isMethod('POST')) {
$payload = $request->getPayload();
]);
$customer = new Customer();
$customer->setEmail($payload->getString('email'));
$customer->setName($payload->getString('name'));
$customer->setSurname($payload->getString('surname'));
$customer->setPhone($payload->getString('phone'));
$customer->setCiv($payload->getString('civ'));
$customer->setType($payload->getString('type')); // 'particular' ou 'buisness'
if ($customer->getType() === 'buisness') {
$customer->setSiret($payload->getString('siret'));
}
// Hachage du mot de passe
$hashedPassword = $hasher->hashPassword($customer, $payload->getString('password'));
$customer->setPassword($hashedPassword);
$customer->setRoles(['ROLE_USER']);
$mailer->send($customer->getEmail(),
$customer->getName()." ".$customer->getSurname(),
"[Ludikevent] - Code de récupération",
"mails/welcome.twig",[
'account' => $customer,
]);
$em->persist($customer);
$em->flush();
$this->addFlash('success', 'Votre compte a été créé avec succès ! Connectez-vous.');
return $this->redirectToRoute('reservation_login');
}
return $this->render('revervation/register.twig');
}
#[Route('/reservation/mot-de-passe', name: 'reservation_password')]
public function forgotPassword(