src/Controller/SecurityController.php line 35

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Laboratory;
  4. use App\Entity\User;
  5. use Doctrine\ORM\EntityManager;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bridge\Doctrine\ManagerRegistry;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  14. class SecurityController extends AbstractController
  15. {
  16.     private $passwordHasher;
  17.     private $entityManager;
  18.     public function __construct(UserPasswordHasherInterface $passwordHasherEntityManagerInterface $entityManager)
  19.     {
  20.         $this->passwordHasher $passwordHasher;
  21.         $this->entityManager $entityManager;
  22.     }
  23.     /**
  24.      * @Route("/login", name="app_login")
  25.      */
  26.     public function login(Request $requestAuthenticationUtils $authenticationUtils): Response
  27.     {
  28.         // get the login error iff there is one
  29.         $error $authenticationUtils->getLastAuthenticationError();
  30.         // last username entered by the user
  31.         $lastUsername $authenticationUtils->getLastUsername();
  32.         return $this->render('security/index.html.twig',
  33.             ['last_username' => $lastUsername'error' => $error ]);
  34.     }
  35.     /**
  36.      * @Route("/logout", name="app_logout", methods={"GET"})
  37.      */
  38.     public function logout()
  39.     {
  40.         // throw new \LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.');
  41.     }
  42.     /**
  43.      * @Route("/restorePass", name="app_restore")
  44.      */
  45.     public function restore(
  46.         Request $request,
  47.         ManagerRegistry $doctrine
  48.     ): Response {
  49.         $em $doctrine->getManager();
  50.         $userName $request->get('userName');
  51.         $userD $em->getRepository(User::class)->findOneBy(['userName' => $userName]);
  52.         if ( ! empty($userD)) {
  53.             $passNew rand(1000099999);
  54.             $this->changePass($userD->getId(), $passNew);
  55.             /*
  56.              $this->addFlash(
  57.                  'success',
  58.                  'Te enviamos un correo con tu nueva contraseña.'
  59.              );
  60.              $subject = 'Nueva Contraseña';
  61.              $message = "Estimado Beneficiario, agradecemos que seas parte de FPYME Ñuble y para seguir conectados, te hemos restablecido tu contraseña para el acceso a nuestra plataforma. <br> <br>
  62.              Tu nueva contraseña es: <strong>" . $passNew . " </strong> <br><br>
  63.    Dentro del sistema podrás visualizar el proceso de avance en tu Transformación Digital. Solo debes ingresar con tu correo y la nueva contraseña. <br><br> ¡Te esperamos! <br>  Saludos Cordiales";
  64.              $htmlContents = $twig->render('security/email.html.twig', [
  65.                  'title'    => $subject,
  66.                  'messages' => $message,
  67.              ]);
  68.              $notif->newNotificationSystem(
  69.                  $email,
  70.                  $subject,
  71.                  $htmlContents
  72.              );
  73.             */
  74.         } else {
  75.             $this->addFlash(
  76.                 'error',
  77.                 'El usuario ingresado no esta disponible en la plataforma'
  78.             );
  79.         }
  80.         return $this->redirectToRoute('app_login');
  81.     }
  82.     function changePass($id$pass)
  83.     {
  84.         $em $this->doctrine->getManager();
  85.         $userD =  $em->getRepository(User::class)->find($id);
  86.         $userD->setPassword($this->passwordHasher->encodePassword(
  87.             $userD,
  88.             $pass
  89.         ));
  90.         $em->flush();
  91.         return true;
  92.     }
  93. }