feat(resetPassword): Adapte le titre et le texte du mail selon l'hôte.

This commit is contained in:
Serreau Jovann
2025-10-09 15:00:09 +02:00
parent 264199a4a5
commit 8bac87c70d
4 changed files with 39 additions and 8 deletions

View File

@@ -24,12 +24,18 @@ class HomeController extends AbstractController
{
#[Route(path: '/',name: 'app_login',methods: ['GET', 'POST'])]
public function index(AuthenticationUtils $authenticationUtils): Response
public function index(Request $request,AuthenticationUtils $authenticationUtils): Response
{
if ($this->getUser()) {
return $this->redirectToRoute('artemis_dashboard');
}
$websiteTitle = "Mainframe";
if($request->getHost() == "espace-client.siteconseil.fr") {
$websiteTitle = "SARL SITECONSEIL";
}
return$this->render('admin/login.twig', [
'websiteTitle' => $websiteTitle,
'noIndex' => true,
'last_username' => $authenticationUtils->getLastUsername(),
'error' => $authenticationUtils->getLastAuthenticationError(),
@@ -44,6 +50,10 @@ class HomeController extends AbstractController
#[Route(path: '/forgot-password',name: 'app_forgotpassword',methods: ['GET', 'POST'])]
public function forgotPassword(EventDispatcherInterface $eventDispatcher,Request $request): Response
{
$websiteTitle = "Mainframe";
if($request->getHost() == "espace-client.siteconseil.fr") {
$websiteTitle = "SARL SITECONSEIL";
}
$requestPasswordResetEvent = new ResetPasswordEvent();
$form = $this->createForm(RequestPasswordRequestType::class,$requestPasswordResetEvent);
$form->handleRequest($request);
@@ -54,11 +64,17 @@ class HomeController extends AbstractController
}
return $this->render('admin/forgot-password.twig', [
'form' => $form->createView(),
'websiteTitle' => $websiteTitle,
]);
}
#[Route(path: '/forgot-password/confirm/{id}/{token}',name: 'app_forgotpassword_confirm',methods: ['GET', 'POST'])]
public function forgotPasswordConfirm(UserPasswordHasherInterface $userPasswordHasher,EventDispatcherInterface $eventDispatcher,Request $request,string $id,string $token,EntityManagerInterface $entityManager): Response
{
$websiteTitle = "Mainframe";
if($request->getHost() == "espace-client.siteconseil.fr") {
$websiteTitle = "SARL SITECONSEIL";
}
$errorMessage = "Requête non valide.";
// Vérifie si l'ID est numérique pour éviter des erreurs de base de données.
if (!is_numeric($id)) {
@@ -105,6 +121,7 @@ class HomeController extends AbstractController
return $this->redirectToRoute('app_login');
}
return $this->render('admin/forgot-password-confirm.twig', [
'websiteTitle' => $websiteTitle,
'form' => $form->createView(),
'noIndex' => true,
'account' => $account,

View File

@@ -9,6 +9,7 @@ use App\Service\Mailer\Mailer;
use App\Service\ResetPassword\Event\ResetPasswordEvent;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
#[AsEventListener(event: ResetPasswordEvent::class, method: 'onResetPassword')]
@@ -17,7 +18,8 @@ class ResetPasswordSubscriber
public function __construct(
private readonly UrlGeneratorInterface $urlGenerator,
private readonly EntityManagerInterface $entityManager,
private readonly Mailer $mailer
private readonly Mailer $mailer,
private readonly RequestStack $requestStack,
) {
}
@@ -66,10 +68,14 @@ class ResetPasswordSubscriber
UrlGeneratorInterface::ABSOLUTE_URL
);
$title = "[Mainframe]";
if($this->requestStack->getMainRequest()->getHost() == "espace-client.siteconseil.fr") {
$title = "[SARL SITECONSEIL]";
}
$this->mailer->send(
$account->getEmail(),
$account->getUsername(),
'[Mainframe] - Lien pour réinitialiser votre mot de passe',
' - Lien pour réinitialiser votre mot de passe',
'mails/artemis/reset.twig',
[
'account' => $account,

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mainframe - {% block title %}{% endblock %}</title>
<title>{{ websiteTitle }} - {% block title %}{% endblock %}</title>
{% if noIndex is defined %}
<meta name="robots" content="noindex, nofollow">
@@ -12,7 +12,7 @@
<link rel="icon" type="image/svg+xml" href="{{ asset('favicon/favicon.svg') }}" />
<link rel="shortcut icon" href="{{ asset('favicon/favicon.ico') }}" />
<link rel="apple-touch-icon" sizes="180x180" href="{{ asset('favicon/apple-touch-icon.png') }}" />
<meta name="apple-mobile-web-app-title" content="Mainframe" />
<meta name="apple-mobile-web-app-title" content="{{ websiteTitle }}" />
<link rel="manifest" href="{{ asset('favicon/site.webmanifest') }}" />
{{ vite_asset('app.js',[]) }}
</head>

View File

@@ -1,9 +1,13 @@
{% extends 'mails/base.twig' %}
{% block content %}
<mj-text>Bonjour {{ datas.account.username }},</mj-text>
<mj-text>Bonjour, </mj-text>
<mj-text>Nous avons reçu une demande de réinitialisation de mot de passe pour votre compte Mainframe.</mj-text>
{% if 'ROLE_CUSTOMER' in datas.account.roles %}
<mj-text>Nous avons reçu une demande de réinitialisation de mot de passe pour votre espace client.</mj-text>
{% else %}
<mj-text>Nous avons reçu une demande de réinitialisation de mot de passe pour votre compte Mainframe.</mj-text>
{% endif %}
<mj-text>Pour réinitialiser votre mot de passe, veuillez cliquer sur le bouton ci-dessous. Ce lien est valable pour une durée limitée.</mj-text>
@@ -20,5 +24,9 @@
<mj-text>Si vous n'avez pas demandé cette réinitialisation de mot de passe, veuillez ignorer cet e-mail. Votre mot de passe actuel restera inchangé.</mj-text>
<mj-text padding-top="20px">Cordialement,</mj-text>
<mj-text>L'équipe Mainframe</mj-text>
{% if 'ROLE_CUSTOMER' in datas.account.roles %}
<mj-text>L'équipe de SARL SITECONSEIL</mj-text>
{% else %}
<mj-text>L'équipe Mainframe</mj-text>
{% endif %}
{% endblock %}