✨ feat(customer): Ajoute l'envoi de mot de passe de boîte mail client
Cette modification permet d'envoyer le mot de passe d'une boîte mail client. Ajoute un event listener et un template d'email.
This commit is contained in:
@@ -35,13 +35,12 @@ use App\Service\Customer\Billing\{
|
||||
CreateDevisCustomerEventSend,
|
||||
CreateFactureEventSend
|
||||
};
|
||||
use App\Service\Customer\{
|
||||
CreateAvisEvent,
|
||||
use App\Service\Customer\{CreateAvisEvent,
|
||||
CreateCustomerNddEmailEvent,
|
||||
CreateFactureEvent,
|
||||
CustomerSendPasswordEmail,
|
||||
DeleteCustomerEvent,
|
||||
RestoreCustomerEvent
|
||||
};
|
||||
RestoreCustomerEvent};
|
||||
use App\Service\Logger\LoggerService;
|
||||
use App\Service\Ovh\Client;
|
||||
use App\Service\Vault\VaultClient;
|
||||
@@ -355,6 +354,17 @@ class CustomerController extends AbstractController
|
||||
}
|
||||
}
|
||||
|
||||
if ($request->query->has('idEmailSendPassword')) {
|
||||
$idEmailSend = $request->query->getInt('idEmailSendPassword');
|
||||
$emailSend = $entityManager->getRepository(CustomerDnsEmail::class)->find($idEmailSend);
|
||||
$loggerService->log('SEND', 'Envoie du mot de passe ' . $emailSend->getEmail(), $this->getUser());
|
||||
$event = new CustomerSendPasswordEmail($emailSend);
|
||||
$eventDispatcher->dispatch($event);
|
||||
$this->addFlash('success', 'Envoie du mot de passe de la boîte mail');
|
||||
|
||||
return $this->redirectToRoute('artemis_intranet_customer_view', ['id' => $customer->getId(), 'current' => 'email', 'idNdd' => $emailSend->getDns()->getId()]);
|
||||
|
||||
}
|
||||
if ($request->query->has('idEmailRestore')) {
|
||||
$idEmailRestore = $request->query->getInt('idEmailRestore');
|
||||
$emailDelete = $entityManager->getRepository(CustomerDnsEmail::class)->find($idEmailRestore);
|
||||
|
||||
@@ -24,6 +24,7 @@ use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
use Vich\UploaderBundle\Templating\Helper\UploaderHelper;
|
||||
|
||||
#[AsEventListener(event: CustomerSendPasswordEmail::class, method: 'onCustomerSendPasswordEmail')]
|
||||
#[AsEventListener(event: CreateCustomerNddEmailEvent::class, method: 'onCreateCustomerNddEmailEvent')]
|
||||
#[AsEventListener(event: CreateDevisCustomerEvent::class, method: 'onBillingEvent')]
|
||||
#[AsEventListener(event: CreateDevisCustomerEventSend::class, method: 'onBillingEventSend')]
|
||||
@@ -45,6 +46,26 @@ class BillingEventSusbriber
|
||||
){
|
||||
}
|
||||
|
||||
public function onCustomerSendPasswordEmail(CustomerSendPasswordEmail $customerSendPasswordEmail)
|
||||
{
|
||||
$ndd = $customerSendPasswordEmail->getCustomerDnsEmail()->getDns();
|
||||
$email = $customerSendPasswordEmail->getCustomerDnsEmail();
|
||||
$customer = $customerSendPasswordEmail->getCustomerDnsEmail()->getDns()->getCustomer()->mainContact();
|
||||
$password = $this->vaultClient->decrypt('mainframe_customer',$email->getPassword());
|
||||
|
||||
$this->mailer->send($email->getEmail()."@".$ndd->getNdd(),$email->getEmail(),"[SARL SITECONSEIL] - Votre de mot de passe","mails/customer/password_mailbox.twig",[
|
||||
'ndd' => $ndd,
|
||||
'email' => $email,
|
||||
'password' => $password,
|
||||
]);
|
||||
|
||||
$this->mailer->send($customer->getEmail(),$customer->getCustomer()->getRaisonSocial(),"[SARL SITECONSEIL] - Votre de mot de passe","mails/customer/password_mailbox.twig",[
|
||||
'ndd' => $ndd,
|
||||
'email' => $email,
|
||||
'password' => $password,
|
||||
]);
|
||||
}
|
||||
|
||||
public function onCreateCustomerNddEmailEvent(CreateCustomerNddEmailEvent $event): void
|
||||
{
|
||||
$ndd = $event->getCustomerDnsEmail()->getDns();
|
||||
|
||||
24
src/Service/Customer/CustomerSendPasswordEmail.php
Normal file
24
src/Service/Customer/CustomerSendPasswordEmail.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Service\Customer;
|
||||
|
||||
use App\Entity\CustomerAdvertPayment;
|
||||
use App\Entity\CustomerDnsEmail;
|
||||
|
||||
class CustomerSendPasswordEmail
|
||||
{
|
||||
private CustomerDnsEmail $customerDnsEmail;
|
||||
|
||||
public function __construct(CustomerDnsEmail $customerDnsEmail)
|
||||
{
|
||||
$this->customerDnsEmail = $customerDnsEmail;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return CustomerDnsEmail
|
||||
*/
|
||||
public function getCustomerDnsEmail(): CustomerDnsEmail
|
||||
{
|
||||
return $this->customerDnsEmail;
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,9 @@
|
||||
<td class="px-6 py-4 whitespace-nowrap font-medium text-blue-600 dark:text-blue-400">{{ email.storage|skFormat }}</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap font-medium text-blue-600 dark:text-blue-400">{{ email.createAt|date('d/m/Y') }}</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap font-medium text-blue-600 dark:text-blue-400">
|
||||
{% if email.password != "" %}
|
||||
<a data-turbo="false" href="{{ path('artemis_intranet_customer_view',{id:customer.id,current:'email',idNdd:email.dns.id,idEmailSendPassword:email.id}) }}" class="bg-purple-600 hover:bg-purple-700 text-white px-3 py-1 rounded">Envoier le mot de passe</a>
|
||||
{% endif %}
|
||||
<a is="confirm-modal" type="delete-email" data-turbo="false" href="{{ path('artemis_intranet_customer_view',{id:customer.id,current:'email',idNdd:email.dns.id,idEmailDelete:email.id}) }}" class="bg-red-600 hover:bg-red-700 text-white px-3 py-1 rounded">Supprimer</a>
|
||||
</td>
|
||||
{% if email.isDeleted %}
|
||||
|
||||
25
templates/mails/customer/password_mailbox.twig
Normal file
25
templates/mails/customer/password_mailbox.twig
Normal file
@@ -0,0 +1,25 @@
|
||||
{% extends 'mails/base.twig' %}
|
||||
{% block content %}
|
||||
<mj-text>
|
||||
Bonjour,
|
||||
</mj-text>
|
||||
<mj-text>
|
||||
Vous avez demandé le mot de passe de la boîte mail <strong>{{ datas.email.email }}@{{ datas.ndd.ndd }}</strong>.
|
||||
</mj-text>
|
||||
<mj-text>
|
||||
Voici le mot de passe associé : <strong>{{ datas.password }}</strong>
|
||||
</mj-text>
|
||||
<mj-text>
|
||||
Configuration pour votre messagerie serveur sécurisée :<br/>
|
||||
Serveur : <strong>mail.esy-web.dev</strong><br/>
|
||||
Protocole POP3 sécurisé (SSL) : Port <strong>995</strong><br/>
|
||||
Protocole IMAP sécurisé (SSL) : Port <strong>993</strong><br/>
|
||||
Protocole SMTP sécurisé : Ports <strong>465 (SSL)</strong> et <strong>587 (STARTTLS)</strong><br/>
|
||||
</mj-text>
|
||||
<mj-text>
|
||||
Vous pouvez accéder à votre webmail ici : <a href="https://mail.esy-web.dev/" target="_blank">https://mail.esy-web.dev/</a>
|
||||
</mj-text>
|
||||
<mj-text>
|
||||
Cordialement,
|
||||
</mj-text>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user