src/Admin/Modules/User/Controller/ResettingController.php line 26

  1. <?php
  2. namespace App\Admin\Modules\User\Controller;
  3. use Symfony\Component\HttpFoundation\Request;
  4. use Doctrine\Persistence\ManagerRegistry;
  5. use App\Controller\BaseController;
  6. use App\Modules\User\Entity\User;
  7. use App\Admin\Modules\User\Service\UserService;
  8. use App\Admin\Modules\User\Form\ResetPasswordType;
  9. use App\Admin\Modules\User\Form\ChangePasswordType;
  10. class ResettingController extends BaseController
  11. {
  12.     private $_doctrine;
  13.     private $_userService;
  14.     public function __construct(
  15.             ManagerRegistry $doctrine,
  16.             UserService $userService)
  17.     {
  18.         $this->_doctrine $doctrine;
  19.         $this->_userService $userService;
  20.     }
  21.     
  22.     public function resetPassword(Request $request)
  23.     {
  24.         $form $this->createForm(ResetPasswordType::class);
  25.         $form->handleRequest($request);
  26.         if ($form->isSubmitted())
  27.         {
  28.             if ($form->isValid())
  29.             {
  30.                 $this->_userService->sendResetPasswordRequest($form->getConfig()->getType()->getInnerType()->user);
  31.                 $this->addFlash('success''Wysłano potwierdzenie zmiany hasła.');
  32.                 return $this->redirectToRoute('user_reset_password');
  33.             }
  34.         }
  35.         return $this->render('Admin/Modules/User/Templates/Resetting/resetPassword.html.twig', array(
  36.             'form' => $form->createView()
  37.         ));
  38.     }
  39.     
  40.     public function changePassword(Request $request$userId$code)
  41.     {
  42.         $user $this->_doctrine->getRepository(User::class)->findOneBy(['id' => $userId'type' => [User::TYPE_SUPER_ADMINUser::TYPE_ADMIN]]);
  43.         
  44.         if (!$user || !$this->_userService->isVerificationCodeValid($user$code))
  45.             $this->throwHttpError400();
  46.         $form $this->createForm(ChangePasswordType::class);
  47.         $form->handleRequest($request);        
  48.         if ($form->isSubmitted())
  49.         {
  50.             if ($form->isValid())
  51.             {
  52.                 $this->_userService->changePassword($user$form['password']->getData());
  53.                 return $this->redirectToRoute('admin_user_password_changed');
  54.             }
  55.         }
  56.         return $this->render('Admin/Modules/User/Templates/Resetting/changePassword.html.twig', array(
  57.             'form' => $form->createView()
  58.         ));
  59.     }
  60.     
  61.     public function passwordChanged()
  62.     {
  63.         return $this->render('Admin/Modules/User/Templates/Resetting/passwordChanged.html.twig');
  64.     }    
  65. }