Commit 6a03ed4c authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

modification du changement de mot de passe

parent 9f843a34
Loading
Loading
Loading
Loading
+14 −7
Original line number Diff line number Diff line
@@ -4,8 +4,8 @@ namespace UnicaenAuthentification\Controller;

use Doctrine\ORM\NonUniqueResultException;
use DomainException;
use Exception;
use UnicaenApp\Controller\Plugin\AppInfos;
use UnicaenApp\Controller\Plugin\Mail;
use UnicaenApp\Exception\RuntimeException;
use UnicaenAuthentification\Authentication\Adapter\Cas;
use UnicaenAuthentification\Authentication\Adapter\LocalAdapter;
@@ -22,12 +22,12 @@ use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\Mvc\Plugin\FlashMessenger\FlashMessenger;
use Laminas\Stdlib\ResponseInterface;
use Laminas\View\Model\ViewModel;
use UnicaenMail\Service\Mail\MailServiceAwareTrait;
use ZfcUser\Controller\Plugin\ZfcUserAuthentication;

/**
 * @method ZfcUserAuthentication zfcUserAuthentication()
 * @method AppInfos appInfos()
 * @method Mail mail()
 * @method FlashMessenger flashMessenger()
 *
 * @author Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr>
@@ -43,6 +43,7 @@ class AuthController extends AbstractActionController

    const AUTH_TYPE_QUERY_PARAM = 'authtype';

    use MailServiceAwareTrait;
    use ShibServiceAwareTrait;
    use UserServiceAwareTrait;
    use UserContextServiceAwareTrait;
@@ -432,16 +433,22 @@ class AuthController extends AbstractActionController

        // envoi du mail contenant le lien de changement de mdp
        $app = $this->appInfos()->getNom();
        $subject = "[$app] Demande de changement de mot de passe";
        $changePasswordUrl = $this->url()->fromRoute('auth/changePassword', ['token' => $token], ['force_canonical' => true]);
        $login = $user->getUsername();
        $subject = "Demande de changement de mot de passe";
        /** @see \UnicaenUtilisateur\Controller\UtilisateurController::changerMotDePasseAction() **/
        $changePasswordUrl = $this->url()->fromRoute('unicaen-utilisateur/changer-mot-de-passe', ['user' => $user->getId(), 'token' => $user->getPasswordResetToken()], ['force_canonical' => true], true);
        $body = <<<EOS
<p>Une demande de changement de mot de passe a été faite sur l'application $app.</p>
<p>Si vous n'en êtes pas l'auteur, vous pouvez ignorer ce message.</p>
<p>Votre identifiant de connexion est <strong>$login</strong>, celui-ci vous sera demandé pour réinitialiser votre mot de passe.</p>
<br>
<p>Cliquez sur le lien suivant pour accéder au formulaire de changement de votre mot de passe :<br><a href='$changePasswordUrl'>$changePasswordUrl</a></p>
EOS;
        $message = $this->mail()->createNewMessage($body, $subject);
        $message->setTo($user->getEmail());
        $this->mail()->send($message);
        try {
            $this->getMailService()->sendMail($user->getEmail(), $subject, $body);
        } catch (Exception $e) {
            throw new RuntimeException("Un problème est survenu lors de l'envoi de courrier électronique", 0, $e);
        }
    }

    /**
+8 −3
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ use UnicaenAuthentification\Options\ModuleOptions;
use UnicaenAuthentification\Service\ShibService;
use UnicaenAuthentification\Service\User as UserService;
use UnicaenAuthentification\Service\UserContext;
use UnicaenMail\Service\Mail\MailService;
use ZfcUser\Controller\RedirectCallback;

class AuthControllerFactory
@@ -23,10 +24,13 @@ class AuthControllerFactory
        /** @var ShibService $shibService */
        $shibService = $container->get(ShibService::class);

        /* @var $userService UserService */
        /**
         * @var MailService $mailService
         * @var $userContextService UserContext
         * @var $userService UserService
         */
        $mailService = $container->get(MailService::class);
        $userService = $container->get('unicaen-auth_user_service');

        /* @var $userContextService UserContext */
        $userContextService = $container->get(UserContext::class);

        /** @var ModuleOptions $moduleOptions */
@@ -36,6 +40,7 @@ class AuthControllerFactory
        $redirectCallback = $container->get('zfcuser_redirect_callback');

        $controller = new AuthController();
        $controller->setMailService($mailService);
        $controller->setShibService($shibService);
        $controller->setUserService($userService);
        $controller->setServiceUserContext($userContextService);