vendor/nen/kennisbank-platform/src/Nen/Controller/PasswordController.php line 73

Open in your IDE?
  1. <?php
  2. namespace Nen\Bundle\KennisbankPlatformBundle\Controller;
  3. use Nen\Bundle\KennisbankPlatformBundle\Entity\BoltPage;
  4. use App\Entity\User;
  5. use Nen\Bundle\KennisbankPlatformBundle\Form\PasswordResetRequestType;
  6. use Nen\Bundle\KennisbankPlatformBundle\Form\PasswordResetType;
  7. use Nen\Bundle\KennisbankPlatformBundle\Model\PasswordResetRequestModel;
  8. use Nen\Bundle\KennisbankPlatformBundle\Security\PasswordResetHandler;
  9. use Nen\Bundle\KennisbankPlatformBundle\Security\PasswordResetRequestHandler;
  10. use Nen\Bundle\KennisbankPlatformBundle\Service\PasswordReset;
  11. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Entity;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. use Symfony\Component\HttpFoundation\JsonResponse;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. use function Symfony\Component\Translation\t;
  18. class PasswordController extends AbstractController
  19. {
  20.     /**
  21.      * @Route("/wachtwoord-instellen/{token}", name="password_reset")
  22.      *
  23.      * @Entity("page", expr="repository.findOneBySystemSectionAndSlug('wachtwoord-instellen')")
  24.      *
  25.      * @param string $token
  26.      * @param Request $request
  27.      * @param PasswordReset $handler
  28.      * @param BoltPage $page
  29.      * @return Response
  30.      */
  31.     public function reset(string $tokenRequest $requestPasswordReset $handlerBoltPage $page): Response
  32.     {
  33.         $user $handler->getUserForToken($token);
  34.         $error 'Dit verzoek is ongeldig of verlopen.';
  35.         if ($user === null || !$user->hasValidPasswordToken()) {
  36.             return $this->render('@KennisbankPlatform/password/reset.html.twig', [
  37.                 'error' => $error,
  38.                 'page'  => $page,
  39.             ]);
  40.         }
  41.         $form $this
  42.             ->createForm(PasswordResetType::class)
  43.             ->handleRequest($request);
  44.         if ($form->isSubmitted() && $form->isValid()) {
  45.             $handler->handle($user$form->get('password')->getData());
  46.             $this->addFlash('success't('Uw wachtwoord is aangepast.'));
  47.             return $this->redirectToRoute('home');
  48.         }
  49.         return $this->render('@KennisbankPlatform/password/reset.html.twig', [
  50.             'form' => $form->createView(),
  51.             'page' => $page,
  52.         ]);
  53.     }
  54.     /**
  55.      * @Route("/wachtwoord-vergeten", name="password_reset_request")
  56.      *
  57.      * @Entity("page", expr="repository.findOneBySystemSectionAndSlug('wachtwoord-vergeten')")
  58.      */
  59.     public function resetRequest(Request $requestBoltPage $pagePasswordReset $handler): Response
  60.     {
  61.         /** @var User|null $user */
  62.         $user $this->getUser();
  63.         $message t('U ontvangt een e-mail met instructies om uw wachtwoord opnieuw in te stellen.');
  64.         if ($user !== null) {
  65.             $handler->requestForUser($user);
  66.             $this->addFlash('success'$message);
  67.             return $this->redirectToRoute('mijnomgeving_account_index');
  68.         }
  69.         $form $this
  70.             ->createForm(PasswordResetRequestType::class)
  71.             ->handleRequest($request);
  72.         if ($form->isSubmitted() && $form->isValid()) {
  73.             $handler->request($form->get('username')->getData());
  74.             $this->addFlash('success'$message);
  75.             if ($request->isXmlHttpRequest()) {
  76.                 return new JsonResponse(['url' => $this->generateUrl('home')]);
  77.             }
  78.             return $this->redirectToRoute('home');
  79.         }
  80.         $data = [
  81.             'form' => $form->createView(),
  82.             'page' => $page
  83.         ];
  84.         if ($request->isXmlHttpRequest()) {
  85.             return $this->render('@KennisbankPlatform/password/modal/reset_request.html.twig'$data);
  86.         }
  87.         return $this->render('@KennisbankPlatform/password/reset_request.html.twig'$data);
  88.     }
  89. }