From c06e4686c2fb1ce1940b669ba659e64aef068de2 Mon Sep 17 00:00:00 2001
From: Jean-Philippe Metivier <jean-philippe.metivier@unicaen.fr>
Date: Tue, 4 Mar 2025 12:09:37 +0100
Subject: [PATCH] 7.2.2

---
 CHANGELOG.md                                  |  5 +++++
 config/merged/mail.config.php                 | 11 ++++++++++
 src/UnicaenMail/Controller/MailController.php | 10 +++++++++
 .../Controller/MailControllerFactory.php      |  4 +---
 src/UnicaenMail/Service/Mail/MailService.php  |  8 +++++--
 .../Service/Mail/MailServiceFactory.php       |  2 +-
 .../mail/afficher-configuration.phtml         | 14 ++++++++++++
 view/unicaen-mail/mail/index.phtml            | 22 ++++++++++++++-----
 8 files changed, 65 insertions(+), 11 deletions(-)
 create mode 100644 view/unicaen-mail/mail/afficher-configuration.phtml

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c6c114e..7fe7886 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+7.2.2
+-----
+- Correction du bug lié à la réexpédition d'un mail
+- Ajout d'une action pour controler la configuration du module
+
 7.2.1
 -----
 - Bug Fixe pour les actions console
diff --git a/config/merged/mail.config.php b/config/merged/mail.config.php
index 5e8d829..bc17705 100644
--- a/config/merged/mail.config.php
+++ b/config/merged/mail.config.php
@@ -56,6 +56,7 @@ return array(
                 [
                     'controller' => MailController::class,
                     'action'     => [
+                        'afficher-configuration',
                         'supprimer',
                     ],
                     'privileges' => [
@@ -122,6 +123,16 @@ return array(
                             ],
                         ],
                     ],
+                    'afficher-configuration' => [
+                        'type' => Literal::class,
+                        'options' => [
+                            'route' => '/afficher-configuration',
+                            'defaults' => [
+                                /** @see MailController::afficherConfigurationAction() */
+                                'action' => 'afficher-configuration',
+                            ],
+                        ],
+                    ],
                 ],
             ],
         ],
diff --git a/src/UnicaenMail/Controller/MailController.php b/src/UnicaenMail/Controller/MailController.php
index 5bcffa8..9812697 100644
--- a/src/UnicaenMail/Controller/MailController.php
+++ b/src/UnicaenMail/Controller/MailController.php
@@ -26,6 +26,16 @@ class MailController extends AbstractActionController
 
     }
 
+    public function afficherConfigurationAction(): ViewModel
+    {
+        $config = $this->getMailService()->getConfig();
+
+        return new ViewModel([
+            'title' => 'Configuration du module',
+            'config' => $config,
+        ]);
+    }
+
     public function afficherAction(): ViewModel
     {
         $mail = $this->getMailService()->getRequestedMail($this);
diff --git a/src/UnicaenMail/Controller/MailControllerFactory.php b/src/UnicaenMail/Controller/MailControllerFactory.php
index 5c06f16..412f539 100644
--- a/src/UnicaenMail/Controller/MailControllerFactory.php
+++ b/src/UnicaenMail/Controller/MailControllerFactory.php
@@ -2,8 +2,8 @@
 
 namespace UnicaenMail\Controller;
 
-use Interop\Container\ContainerInterface;
 use Psr\Container\ContainerExceptionInterface;
+use Psr\Container\ContainerInterface;
 use Psr\Container\NotFoundExceptionInterface;
 use UnicaenMail\Service\Mail\MailService;
 
@@ -11,8 +11,6 @@ class MailControllerFactory
 {
 
     /**
-     * @param ContainerInterface $container
-     * @return MailController
      * @throws ContainerExceptionInterface
      * @throws NotFoundExceptionInterface
      */
diff --git a/src/UnicaenMail/Service/Mail/MailService.php b/src/UnicaenMail/Service/Mail/MailService.php
index 8683fab..826f5c3 100644
--- a/src/UnicaenMail/Service/Mail/MailService.php
+++ b/src/UnicaenMail/Service/Mail/MailService.php
@@ -77,6 +77,10 @@ EOS;
         $this->config = $config;
     }
 
+    public function getConfig(): array
+    {
+        return $this->config;
+    }
 
     public function createMailEntity(): object
     {
@@ -356,9 +360,9 @@ EOS;
         $precedenteDateEnvoi = $mail->getDateEnvoi();
         $supplement = "<p><strong>Ce courrier électronique est une ré-expédition du courrier envoyé initialement le " . $precedenteDateEnvoi->format('d/m/Y à H:i') . "</strong></p>";
 
-        //todo les pieces jointes
-        $nMail = $this->sendMail($mail->getDestinataires(), $mail->getSujet(), $mail->getCorps(), null, null, null, $supplement);
+        $nMail = $this->sendMail($mail->getDestinataires(), $mail->getSujet(), ($supplement. $mail->getCorps()), null, $mail->getAttachmentPaths(), $mail->getReplyTo());
         $nMail->setMotsClefs(explode(Mail::MOTCLEF_SEPARATEUR, $mail->getMotsClefs()));
+        $nMail->setCorps($mail->getCorps());
         $this->update($nMail);
         return $mail;
 
diff --git a/src/UnicaenMail/Service/Mail/MailServiceFactory.php b/src/UnicaenMail/Service/Mail/MailServiceFactory.php
index 8302803..510369a 100644
--- a/src/UnicaenMail/Service/Mail/MailServiceFactory.php
+++ b/src/UnicaenMail/Service/Mail/MailServiceFactory.php
@@ -3,8 +3,8 @@
 namespace UnicaenMail\Service\Mail;
 
 use Doctrine\ORM\EntityManager;
-use Interop\Container\ContainerInterface;
 use Psr\Container\ContainerExceptionInterface;
+use Psr\Container\ContainerInterface;
 use Psr\Container\NotFoundExceptionInterface;
 use Symfony\Component\Mailer\Mailer;
 use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransport;
diff --git a/view/unicaen-mail/mail/afficher-configuration.phtml b/view/unicaen-mail/mail/afficher-configuration.phtml
new file mode 100644
index 0000000..f8d8e1f
--- /dev/null
+++ b/view/unicaen-mail/mail/afficher-configuration.phtml
@@ -0,0 +1,14 @@
+<?php
+
+/**
+ * @see \UnicaenMail\Controller\MailController::afficherConfigurationAction()
+ * @var array $config
+ */
+
+?>
+
+
+<?php foreach ($config as $key => $value): ?>
+    <h2> <?php echo $key; ?> </h2>
+    <?php var_dump($value); ?>
+<?php endforeach; ?>
diff --git a/view/unicaen-mail/mail/index.phtml b/view/unicaen-mail/mail/index.phtml
index 58241ed..79c1906 100644
--- a/view/unicaen-mail/mail/index.phtml
+++ b/view/unicaen-mail/mail/index.phtml
@@ -14,6 +14,7 @@ $this->headTitle($title);
 
 $canTest = $this->isAllowed(MailPrivileges::getResourceId(MailPrivileges::MAIL_AFFICHER));
 
+$canAfficherConfiguration = $this->isAllowed(MailPrivileges::getResourceId(MailPrivileges::MAIL_SUPPRIMER));
 
 ?>
 
@@ -23,11 +24,22 @@ $canTest = $this->isAllowed(MailPrivileges::getResourceId(MailPrivileges::MAIL_A
 
 <div class="row mb-3">
     <div class="col-md-12">
-        <a href="<?php echo $this->url('mail/test', [], [], true); ?>"
-           class="btn btn-primary action ajax-modal" data-event="modification">
-            <span class="icon icon-notifier"></span>
-            Envoi d'un mail de test
-        </a>
+        <?php if ($canTest): ?>
+            <?php /** @see \UnicaenMail\Controller\MailController::testAction() */ ?>
+            <a href="<?php echo $this->url('mail/test', [], [], true); ?>"
+               class="btn btn-primary ajax-modal" data-event="modification">
+                <span class="icon icon-notifier"></span>
+                Envoi d'un mail de test
+            </a>
+        <?php endif; ?>
+        <?php if ($canAfficherConfiguration) : ?>
+            <?php /** @see \UnicaenMail\Controller\MailController::afficherConfigurationAction() */ ?>
+            <a href="<?php echo $this->url('mail/afficher-configuration', [], [], true); ?>"
+               class="btn btn-secondary ajax-modal">
+                <span class="icon icon-gerer"></span>
+                Vérification de la configuration
+            </a>
+        <?php endif; ?>
     </div>
 </div>
 
-- 
GitLab