Commit c3951533 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Suppression de la dépendance avec unicaen/app (l'envoi du jeton par mail est...

Suppression de la dépendance avec unicaen/app (l'envoi du jeton par mail est désormais à la charge de l'appli).
parent d803cf50
Loading
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
CHANGELOG
=========

7.1.0
-----
- Suppression de la dépendance avec unicaen/app (l'envoi du jeton par mail est désormais à la charge de l'appli).

7.0.0
-----
- Requiert les nouvelles bibliotèques unicaen/authentification et privilege.
+1 −8
Original line number Diff line number Diff line
@@ -8,11 +8,9 @@
        }
    ],
    "require": {
        "unicaen/app": "^6.0",
        "unicaen/authentification": "^6.2",
        "unicaen/privilege": "^6.0",
        "ramsey/uuid": "^3.7",
        "laminas/laminas-dependency-plugin": "^2.1"
        "ramsey/uuid": "^3.7"
    },
    "require-dev": {
        "phpunit/phpunit": "^8.0"
@@ -26,10 +24,5 @@
        "classmap": [
            "./Module.php"
        ]
    },
    "config": {
        "allow-plugins": {
            "laminas/laminas-dependency-plugin": true
        }
    }
}
+3 −0
Original line number Diff line number Diff line
@@ -4,6 +4,8 @@ namespace UnicaenAuthToken;

use Doctrine\Persistence\Mapping\Driver\MappingDriverChain;
use Doctrine\ORM\Mapping\Driver\XmlDriver;
use UnicaenAuthToken\Mvc\RedirectResponse;
use UnicaenAuthToken\Mvc\RedirectResponseFactory;
use UnicaenPrivilege\Guard\PrivilegeController;
use UnicaenPrivilege\Provider\Rule\PrivilegeRuleProvider;
use UnicaenAuthToken\Authentication\Adapter\TokenAdapter;
@@ -272,6 +274,7 @@ return [
            TokenService::class => TokenServiceFactory::class,
            TokenLoginForm::class => TokenLoginFormFactory::class,
            TokenAdapter::class => TokenAdapterFactory::class,
            RedirectResponse::class => RedirectResponseFactory::class,
        ],
    ],

+18 −34
Original line number Diff line number Diff line
@@ -9,8 +9,7 @@ use Laminas\Mvc\Plugin\FlashMessenger\FlashMessenger;
use Laminas\View\Model\ViewModel;
use RuntimeException;
use UnexpectedValueException;
use UnicaenApp\Mvc\RedirectResponse;
use UnicaenApp\Service\Mailer\MailerServiceAwareTrait;
use UnicaenAuthToken\Mvc\RedirectResponse;
use UnicaenUtilisateur\Entity\Db\UserInterface;
use UnicaenAuthentification\Service\Traits\UserServiceAwareTrait;
use UnicaenAuthToken\Entity\Db\AbstractUserToken;
@@ -27,7 +26,6 @@ class TokenController extends AbstractActionController
{
    use TokenServiceAwareTrait;
    use UserServiceAwareTrait;
    use MailerServiceAwareTrait;

    const PROLONG_SPEC = '+1 week';
    const PROLONG_SPEC_TOSTRING = '1 semaine';
@@ -40,8 +38,6 @@ class TokenController extends AbstractActionController
    const EVENT_TOKEN_DELETE_AFTER = 'EVENT_TOKEN_DELETE_AFTER';
    const EVENT_TOKEN_PROLONGATE_BEFORE_SAVE = 'EVENT_TOKEN_PROLONGATE_BEFORE_SAVE';
    const EVENT_TOKEN_PROLONGATE_AFTER_SAVE = 'EVENT_TOKEN_PROLONGATE_AFTER_SAVE';
    const EVENT_TOKEN_SEND_BEFORE = 'EVENT_TOKEN_SEND_BEFORE';
    const EVENT_TOKEN_SEND_AFTER = 'EVENT_TOKEN_SEND_AFTER';

    /**
     * @var UserTokenForm
@@ -84,10 +80,7 @@ class TokenController extends AbstractActionController
        ];
    }

    /**
     * @return \Laminas\Http\Response|\Laminas\View\Model\ViewModel
     */
    public function creerAction()
    public function creerAction(): Response|ViewModel
    {
        $userId = $this->params('user');

@@ -127,7 +120,14 @@ class TokenController extends AbstractActionController
                        $userToken->getExpiredOnToString()
                    ));

                    $response = $this->triggerEvent(static::EVENT_TOKEN_CREATE_AFTER_SAVE, ['userToken' => $userToken, 'data' => $data]);
                    // un message mail par défaut est fourni dans l'événement, son envoi éventuel restant à la charge de l'appli.
                    try {
                        $mailMessage = $this->tokenService->createUserTokenMail($userToken);
                    } catch (\InvalidArgumentException $e) {
                        $mailMessage = null;
                    }

                    $response = $this->triggerEvent(static::EVENT_TOKEN_CREATE_AFTER_SAVE, ['userToken' => $userToken, 'data' => $data, 'mailMessage' => $mailMessage]);
                    if ($response instanceof Response) {
                        return $response;
                    }
@@ -261,35 +261,19 @@ class TokenController extends AbstractActionController
        return $redirectCallback('unicaen-auth-token/token');
    }

    /**
     * @deprecated
     */
    public function envoyerAction(): Response
    {
        $userToken = $this->getRequestedUserToken();
        try {
            $this->triggerEvent(static::EVENT_TOKEN_SEND_BEFORE, ['userToken' => $userToken]);

        $message = $this->tokenService->createUserTokenMail($userToken);
            try {
                $message = $this->mailerService->send($message);
            } catch (\Exception $e) {
                throw new TokenServiceException("L'envoi du token par mail a échoué", null, $e);
            }

            $userToken->setSentOn(new \DateTime('now'));
            $this->tokenService->saveUserToken($userToken);

            $this->flashMessenger()->addSuccessMessage(sprintf(
                "Le jeton utilisateur a été envoyé avec succès à %s.",
        $this->flashMessenger()->addErrorMessage(sprintf(
            "Le jeton utilisateur n'a pas été envoyé à %s, la bibliothèque n'envoie plus de mail !",
            $message->getTo()->rewind()->getEmail()
        ));

            $response = $this->triggerEvent(static::EVENT_TOKEN_SEND_AFTER, ['userToken' => $userToken, 'message' => $message]);
            if ($response instanceof Response) {
                return $response;
            }
        } catch (TokenServiceException $e) {
            throw new RuntimeException("Erreur rencontrée lors de l'envoi du jeton utilisateur.");
        }

        $redirectCallback = $this->redirectResponse;

        return $redirectCallback('unicaen-auth-token/token');
+1 −5
Original line number Diff line number Diff line
@@ -3,8 +3,7 @@
namespace UnicaenAuthToken\Controller;

use Interop\Container\ContainerInterface;
use UnicaenApp\Mvc\RedirectResponse;
use UnicaenApp\Service\Mailer\MailerService;
use UnicaenAuthToken\Mvc\RedirectResponse;
use UnicaenAuthToken\Form\UserTokenForm;
use UnicaenAuthToken\Service\TokenService;
use UnicaenAuthentification\Service\User as UserService;
@@ -33,9 +32,6 @@ class TokenControllerFactory
        $redirectResponse = $container->get(RedirectResponse::class);
        $controller->setRedirectResponse($redirectResponse);

        $mailerService = $container->get(MailerService::class);
        $controller->setMailerService($mailerService);

        return $controller;
    }
}
 No newline at end of file
Loading