```
✨ feat(ReserverController): Crée la logique d'enregistrement client et envoie un email de bienvenue.
```
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user