vendor/uvdesk/core-framework/Controller/Authentication.php line 35

Open in your IDE?
  1. <?php
  2. namespace Webkul\UVDesk\CoreFrameworkBundle\Controller;
  3. use Symfony\Component\Form\FormError;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Webkul\UVDesk\CoreFrameworkBundle\Entity\User;
  7. use Symfony\Component\EventDispatcher\GenericEvent;
  8. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  9. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  10. use Webkul\UVDesk\CoreFrameworkBundle\Utils\TokenGenerator;
  11. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  12. use Webkul\UVDesk\CoreFrameworkBundle\Workflow\Events as CoreWorkflowEvents;
  13. class Authentication extends Controller
  14. {
  15.     public function login(Request $request)
  16.     {
  17.         if (null == $this->get('user.service')->getSessionUser()) {
  18.             return $this->render('@UVDeskCoreFramework//login.html.twig', [
  19.                 'last_username' => $this->get('security.authentication_utils')->getLastUsername(),
  20.                 'error' => $this->get('security.authentication_utils')->getLastAuthenticationError(),
  21.             ]);
  22.         }
  23.         
  24.         return $this->redirect($this->generateUrl('helpdesk_member_dashboard'));
  25.     }
  26.     public function logout(Request $request)
  27.     {
  28.         return;
  29.     }
  30.     public function forgotPassword(Request $request)
  31.     {
  32.         if (null != $this->get('user.service')->getSessionUser()) {
  33.             return new Response('How did you land here? :/'404);
  34.         }
  35.         $entityManager $this->getDoctrine()->getManager();
  36.             
  37.         if ($request->getMethod() == 'POST') {
  38.             $user = new User();
  39.             $form $this->createFormBuilder($user,['csrf_protection' => false])
  40.                     ->add('email',EmailType::class)
  41.                     ->getForm();
  42.             $form->submit(['email' => $request->request->get('forgot_password_form')['email']]);
  43.             $form->handleRequest($request);
  44.             
  45.             if ($form->isValid()) {
  46.                 $repository $this->getDoctrine()->getRepository('UVDeskCoreFrameworkBundle:User');
  47.                 $user $entityManager->getRepository('UVDeskCoreFrameworkBundle:User')->findOneByEmail($form->getData()->getEmail());
  48.             
  49.                 if (!empty($user)) {
  50.                     // Trigger agent forgot password event
  51.                     $event = new GenericEvent(CoreWorkflowEvents\UserForgotPassword::getId(), [
  52.                         'entity' => $user,
  53.                     ]);
  54.                         
  55.                     $this->get('event_dispatcher')->dispatch('uvdesk.automation.workflow.execute'$event);
  56.                     $request->getSession()->getFlashBag()->set('success'$this->get('translator')->trans('Please check your mail for password update.'));
  57.                 } else {
  58.                     $request->getSession()->getFlashBag()->set('warning'$this->get('translator')->trans('This Email address is not registered with us.'));
  59.                 }
  60.             }
  61.         }
  62.             
  63.         return $this->render("@UVDeskCoreFramework//forgotPassword.html.twig");
  64.     }
  65.     public function updateCredentials($email$verificationCodeRequest $requestUserPasswordEncoderInterface $encoder)
  66.     {
  67.         if (empty($email) || empty($verificationCode)) {
  68. //            return new Response('How did you land here? :/', 404);
  69. return $this->render('@UVDeskSupportCenter/Knowledgebase/login.html.twig' );
  70.         } else {
  71.             $entityManager $this->getDoctrine()->getManager();
  72.             $user $entityManager->getRepository('UVDeskCoreFrameworkBundle:User')->findOneByEmail($email);
  73.     
  74.             if (empty($user) || $user->getVerificationCode() != $verificationCode) {
  75. //                return new Response('How did you land here? :/', 404);
  76. return $this->render('@UVDeskSupportCenter/Knowledgebase/login.html.twig' );
  77.             }
  78.         }
  79.         if ($request->getMethod() == 'POST') {
  80.             $updatedCredentials $request->request->all();
  81.             if ($updatedCredentials['password'] === $updatedCredentials['confirmPassword']) {
  82.                 $user->setPassword($encoder->encodePassword($user$updatedCredentials['password']));
  83.                 $user->setVerificationCode(TokenGenerator::generateToken());
  84.                 $entityManager->persist($user);
  85.                 $entityManager->flush();
  86.                 $request->getSession()->getFlashBag()->set('success''Your password has been updated successfully.');
  87. return $this->render('@UVDeskSupportCenter/Knowledgebase/login.html.twig' );
  88.             } else {
  89.                 $request->getSession()->getFlashBag()->set('warning'"Please try again. The passwords do not match.");
  90.             }
  91.         }
  92.         return $this->render("@UVDeskCoreFramework//resetPassword.html.twig");
  93.     }
  94. }