src/Controller/UsuarioController.php line 51

Open in your IDE?
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: manueljb
  5.  * Date: 10/12/2018
  6.  * Time: 10:49
  7.  */
  8. namespace App\Controller;
  9. use FOS\RestBundle\Controller\AbstractFOSRestController;
  10. use FOS\RestBundle\Controller\Annotations as Rest;
  11. use FOS\RestBundle\Controller\FOSRestController;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. use App\Service\UsuarioService;
  15. use Symfony\Component\HttpFoundation\Request;
  16. use Symfony\Component\HttpFoundation\Response;
  17. use JMS\Serializer\SerializationContext;
  18. use JMS\Serializer\SerializerBuilder;
  19. use App\Entity\Cuenta;
  20. use Swift_Mailer;
  21. use Symfony\Component\Serializer\SerializerInterface;
  22. use App\Repository\CuentaRepository;
  23. use Psr\Log\LoggerInterface;
  24. class UsuarioController extends AbstractFOSRestController
  25. {
  26.     private $serviceUsuario;
  27.     private $cuentasRepository;
  28.     private $serializer;
  29.     private $mailer;
  30.     private $log;
  31.     //private $servidorWeb="http://83.48.105.27:8989";
  32.     // private $servidorWeb="http://192.168.10.80:8889";
  33.     public function __construct(UsuarioService $serviceUsuario, SerializerInterface $serializer, Swift_Mailer $mailer, CuentaRepository $cuentasRepository, LoggerInterface $logger)
  34.     {
  35.         $this->serviceUsuario = $serviceUsuario;
  36.         $this->serializer = $serializer;
  37.         $this->mailer = $mailer;
  38.         $this->cuentasRepository = $cuentasRepository;
  39.         $this->log = $logger;
  40.     }
  41.     /**
  42.      * @Route("api/usuarios", name="GetUsuariosByCuenta", methods="GET")
  43.      */
  44.     public function getAllUsuarioByAdmin(Request $request)
  45.     {
  46.         /*
  47.         $response = new Response(Response::HTTP_BAD_REQUEST);
  48.         $serializer = SerializerBuilder::create()->setPropertyNamingStrategy(
  49.             new \JMS\Serializer\Naming\SerializedNameAnnotationStrategy(
  50.                 new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy()
  51.             )
  52.         )->build();
  53.         try {
  54.             $usr = $this->get('security.token_storage')->getToken()->getUser();
  55.             if($usr=='anon.' || $usr->getCuenta() == null) {
  56.                 return  new Response(Response::HTTP_BAD_REQUEST);
  57.             }else {
  58.                 $data = $this->serviceUsuario ->getUsuarioByCuenta($usr->getCuenta());
  59.                 if(!$data)
  60.                 {
  61.                     $data = [];
  62.                 }
  63.                 $response =  new Response($serializer->serialize($data, 'json', SerializationContext::create()->setGroups('clienteAdmin')),Response::HTTP_OK);
  64.                 $response->headers->set('Content-Type', 'json'); //xml
  65.                 $response->prepare($request);
  66.                 return $response;
  67.             }
  68.         } catch (Exception $e) {
  69.             error_log($e);
  70.             return  new Response(Response::HTTP_BAD_REQUEST);
  71.         }
  72.         */
  73.         $response =  new Response(Response::HTTP_BAD_REQUEST);
  74.         $serializer = SerializerBuilder::create()->setPropertyNamingStrategy(
  75.             new \JMS\Serializer\Naming\SerializedNameAnnotationStrategy(
  76.                 new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy()
  77.             )
  78.         )->build();
  79.         try {
  80.             $cuenta = $this->get('security.token_storage')->getToken()->getUser();
  81.             $result = $this->serviceUsuario->getUsuarioByCuenta($cuenta);
  82.             $response =  new Response($serializer->serialize($result, 'json', SerializationContext::create()->setGroups('clienteAdmin')), Response::HTTP_OK);
  83.         } catch (Exception $e) {
  84.             error_log($e);
  85.         }
  86.         return $response;
  87.     }
  88.     /**
  89.      * @Route("api/usuarioUpdate", name="Create OR Update User", methods="POST")
  90.      */
  91.     public function CreateORReplaceUsuario(Request $request)
  92.     {
  93.         try {
  94.             $correcto = null;
  95.             $response =  new Response(Response::HTTP_BAD_REQUEST);
  96.             $cuenta = $this->get('security.token_storage')->getToken()->getUser();
  97.             /*
  98.             $usr = $this->get('security.token_storage')->getToken()->getUser();
  99.             if($usr->getTipo() != 1)
  100.                 return  new Response("permisos insuficientes",Response::HTTP_BAD_REQUEST);
  101.             */
  102.             $serializer = $this->serializer;
  103.             if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) {
  104.                 $usuario = json_decode($request->getContent(), true);
  105.                 if ($usuario['id'] != null && $usuario['id'] != '') {
  106.                     //Tenemos Id por lo que es una actulizacion
  107.                     $correcto = $this->serviceUsuario->updateUsuarioByCuenta($usuario);
  108.                 } else {
  109.                     $correcto = $this->serviceUsuario->creaUsuarioByCuenta($cuenta, $usuario);
  110.                 }
  111.             }
  112.             //$serializer = $this->get('jms_serializer');
  113.             if ($correcto != null) {
  114.                 $response =  new Response(Response::HTTP_OK);
  115.             } else {
  116.                 $response =  new Response(Response::HTTP_BAD_REQUEST);
  117.             }
  118.             $response->prepare($request);
  119.             return $response;
  120.         } catch (Exception $e) {
  121.             error_log($e);
  122.             return new Response(Response::HTTP_BAD_REQUEST);
  123.         }
  124.     }
  125.     /**
  126.      * @Route("api/cuentaUpdateDisclaimer", name="Update account disclaimer", methods="POST")
  127.      */
  128.     public function updateDisclaimerAccept(Request $request)
  129.     {
  130.         try {
  131.             $correo = $request->request->get("correo");
  132.             $disclaimer = $request->request->get("aceptacionDisclaimer");
  133.             $correcto = true;
  134.             $datos = $request->getContent();
  135.             $cuenta = $this->serviceUsuario->buscaCuentabyCorreo($correo, $disclaimer); //Implemento aqui la actualizacion del disclaimer porque por alguna razon lo de abajo da error 400
  136.             //$result = $this->usuarioService->aceptarDisclaimer($datos, $cuenta);
  137.             if ($cuenta === null) {
  138.                 $correcto = false;
  139.             }
  140.             if ($correcto) {
  141.                 $response =  new Response('ok', Response::HTTP_OK);
  142.             } else {
  143.                 $response =  new Response(Response::HTTP_BAD_REQUEST);
  144.             }
  145.             $response->prepare($request);
  146.             return $response;
  147.         } catch (\Exception $e) {
  148.             error_log($e);
  149.             return new Response(Response::HTTP_BAD_REQUEST);
  150.         }
  151.     }
  152.     /*
  153.      * Panel Administrador
  154.      */
  155.     /**
  156.      * @Route("api/admin/cuentaUpdate", name="Create OR Update Cuenta", methods="POST")
  157.      */
  158.     public function CreateORReplaceCuenta(Request $request)
  159.     {
  160.         try {
  161.             $correcto = null;
  162.             $response =  new Response(Response::HTTP_BAD_REQUEST);
  163.             if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) {
  164.                 $cuenta = json_decode($request->getContent(), true);
  165.                 $datos = $request->getContent();
  166.                 if (isset($datos['aceptacionDisclaimer'])) {
  167.                     $cuenta = $this->get('security.token_storage')->getToken()->getUser();
  168.                     $correcto = $this->usuarioService->aceptarDisclaimer($datos, $cuenta);
  169.                 } else {
  170.                     if ($cuenta['id'] === null || $cuenta['id'] === '') {
  171.                         $correcto = $this->serviceUsuario->gestionCuenta($cuenta);
  172.                         $this->enviarCorreoCuentaNueva($correcto);
  173.                     } else {
  174.                         if (isset($cuenta['reset'])) {
  175.                             if ($cuenta['reset'] === true) {
  176.                                 $correcto = $this->cuentasRepository->find($cuenta['id']);
  177.                                 $this->enviarCorreoCuentaNueva($correcto);
  178.                             } else {
  179.                                 $correcto = $this->serviceUsuario->gestionCuenta($cuenta);
  180.                             }
  181.                         } else {
  182.                             $correcto = $this->serviceUsuario->gestionCuenta($cuenta);
  183.                         }
  184.                     }
  185.                 }
  186.             }
  187.             if ($correcto != null) {
  188.                 $response =  new Response(Response::HTTP_OK);
  189.             } else {
  190.                 $response =  new Response(Response::HTTP_BAD_REQUEST);
  191.             }
  192.             $response->prepare($request);
  193.             return $response;
  194.         } catch (\Exception $e) {
  195.             $this->log->info('ERROR: ' . $e);
  196.             error_log($e);
  197.             return new Response(Response::HTTP_BAD_REQUEST);
  198.         }
  199.     }
  200.     /**
  201.      * @Route("api/admin/cuentas", name="GetCuentas", methods="GET")
  202.      */
  203.     public function getAllCuentas(Request $request)
  204.     {
  205.         $serializer = SerializerBuilder::create()->setPropertyNamingStrategy(
  206.             new \JMS\Serializer\Naming\SerializedNameAnnotationStrategy(
  207.                 new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy()
  208.             )
  209.         )->build();
  210.         // $serializer = $this->get('jms_serializer');
  211.         $data = $this->serviceUsuario->getAll();
  212.         if (!$data) {
  213.             $data = [];
  214.         }
  215.         $response =  new Response($serializer->serialize($data, 'json', SerializationContext::create()->setGroups('cuenta')), Response::HTTP_OK);
  216.         $response->headers->set('Content-Type', 'json'); //xml
  217.         $response->prepare($request);
  218.         return $response;
  219.     }
  220.     
  221.     /**
  222.      * @Route("api/admin/cuentasConFormula", name="GetCuentasConFormula", methods="GET")
  223.      */
  224.     public function getAllCuentasConFormula(Request $request)
  225.     {
  226.         $serializer = SerializerBuilder::create()->setPropertyNamingStrategy(
  227.             new \JMS\Serializer\Naming\SerializedNameAnnotationStrategy(
  228.                 new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy()
  229.             )
  230.         )->build();
  231.         // $serializer = $this->get('jms_serializer');
  232.         $data = $this->serviceUsuario->getAllFormula();
  233.         if (!$data) {
  234.             $data = [];
  235.         }
  236.         $response =  new Response($serializer->serialize($data, 'json', SerializationContext::create()->setGroups('cuenta')), Response::HTTP_OK);
  237.         $response->headers->set('Content-Type', 'json'); //xml
  238.         $response->prepare($request);
  239.         return $response;
  240.     }
  241.     /**
  242.      * @Rest\Post("api/admin/updateCuentas", name="adminUpdateCuentas")
  243.      */
  244.     public function updateCuentasFromCSV(Request $request)
  245.     {
  246.         $response =  new Response('Error, Cuenta de la peticion no autorizada, o identificador no valido', Response::HTTP_BAD_REQUEST);
  247.         try {
  248.             $usr = $this->get('security.token_storage')->getToken()->getUser();
  249.             if ($usr->getId() == 1) {
  250.                 $cuenta = $this->serviceUsuario->updateCuentas();
  251.                 $response =  new Response('OK', Response::HTTP_OK);
  252.                 return $response;
  253.             } else {
  254.                 return $response;
  255.             }
  256.         } catch (\Exception $e) {
  257.             error_log($e);
  258.             return $response;
  259.         }
  260.     }
  261.     /**
  262.      * @Rest\Post("api/admin/copyPersonalComps", name="adminCopyPersonalComps")
  263.      */
  264.     public function copyPersonalComps(Request $request)
  265.     {
  266.         $response =  new Response('Error, Cuenta de la peticion no autorizada, o identificador no valido', Response::HTTP_BAD_REQUEST);
  267.         $datos = json_decode($request->getContent(), true);
  268.         $cuenta = $this->get('security.token_storage')->getToken()->getUser();
  269.         try {
  270.             $usr = $this->get('security.token_storage')->getToken()->getUser();
  271.             if ($usr->getId() == 1) {
  272.                 $personalComps = $this->serviceUsuario->copyPersonalComps($datos, $cuenta);
  273.                 if ($personalComps == true) {
  274.                     $response =  new Response('OK', Response::HTTP_OK);
  275.                 } else {
  276.                     $response =  new Response('Error: ' . $personalComps, Response::HTTP_BAD_REQUEST);
  277.                 }
  278.                 return $response;
  279.             } else {
  280.                 return $response;
  281.             }
  282.         } catch (\Exception $e) {
  283.             error_log($e);
  284.             $response =  new Response('Error: ' . $e, Response::HTTP_BAD_REQUEST);
  285.             return $response;
  286.         }
  287.     }
  288.     /**
  289.      * @Rest\Post("api/admin/copyFPto", name="adminCopyFPto")
  290.      */
  291.     public function copyFPto(Request $request)
  292.     {
  293.         $response =  new Response('Error, Cuenta de la peticion no autorizada, o identificador no valido', Response::HTTP_BAD_REQUEST);
  294.         $datos = json_decode($request->getContent(), true);
  295.         $cuenta = $this->get('security.token_storage')->getToken()->getUser();
  296.         try {
  297.             $usr = $this->get('security.token_storage')->getToken()->getUser();
  298.             if ($usr->getId() == 1) {
  299.                 $formulasPers = $this->serviceUsuario->copyFPto($datos, $cuenta);
  300.                 $response =  new Response("OK", Response::HTTP_OK);
  301.                 $response->prepare($request);
  302.                 return $response;
  303.             } else {
  304.                 $response->prepare($request);
  305.                 return $response;
  306.             }
  307.         } catch (\Exception $e) {
  308.             error_log($e);
  309.             $response->prepare($request);
  310.             return $response;
  311.         }
  312.     }
  313.     /**
  314.      * @Rest\Post("api/admin/resetGroups", name="adminResetGroups")
  315.      */
  316.     public function resetGroups(Request $request)
  317.     {
  318.         $response =  new Response('Error, Cuenta de la peticion no autorizada, o identificador no valido', Response::HTTP_BAD_REQUEST);
  319.         $datos = json_decode($request->getContent(), true);
  320.         $cuenta = $this->get('security.token_storage')->getToken()->getUser();
  321.         try {
  322.             $usr = $this->get('security.token_storage')->getToken()->getUser();
  323.             if ($usr->getId() == 1) {
  324.                 $cuenta = $this->serviceUsuario->resetGroups($datos, $cuenta);
  325.                 $response =  new Response('OK', Response::HTTP_OK);
  326.                 $response->prepare($request);
  327.                 return $response;
  328.             } else {
  329.                 return $response;
  330.             }
  331.         } catch (\Exception $e) {
  332.             error_log($e);
  333.             $response->prepare($request);
  334.             return $response;
  335.         }
  336.     }
  337.     /**
  338.      * @Rest\Post("api/admin/resetConfig", name="adminResetConfig")
  339.      */
  340.     public function resetConfig(Request $request)
  341.     {
  342.         $response =  new Response('Error, Cuenta de la peticion no autorizada, o identificador no valido', Response::HTTP_BAD_REQUEST);
  343.         $datos = json_decode($request->getContent(), true);
  344.         $cuenta = $this->get('security.token_storage')->getToken()->getUser();
  345.         try {
  346.             $usr = $this->get('security.token_storage')->getToken()->getUser();
  347.             if ($usr->getId() == 1) {
  348.                 $cuenta = $this->serviceUsuario->resetConfig($datos, $cuenta);
  349.                 $response->prepare($request);
  350.                 $response =  new Response('OK', Response::HTTP_OK);
  351.                 return $response;
  352.             } else {
  353.                 return $response;
  354.             }
  355.         } catch (\Exception $e) {
  356.             error_log($e);
  357.             $response->prepare($request);
  358.             return $response;
  359.         }
  360.     }
  361.     /**
  362.      * @Rest\Post("api/admin/resetCuenta", name="adminResetCuenta")
  363.      */
  364.     public function resetCuenta(Request $request)
  365.     {
  366.         $response =  new Response('Error, Cuenta de la peticion no autorizada, o identificador no valido', Response::HTTP_BAD_REQUEST);
  367.         $datos = json_decode($request->getContent(), true);
  368.         $cuenta = $this->get('security.token_storage')->getToken()->getUser();
  369.         try {
  370.             $usr = $this->get('security.token_storage')->getToken()->getUser();
  371.             if ($usr->getId() == 1) {
  372.                 $cuenta = $this->serviceUsuario->resetCuenta($datos, $cuenta);
  373.                 $response =  new Response('OK', Response::HTTP_OK);
  374.                 $response->prepare($request);
  375.                 return $response;
  376.             } else {
  377.                 return $response;
  378.             }
  379.         } catch (\Exception $e) {
  380.             error_log($e);
  381.             $response->prepare($request);
  382.             return $response;
  383.         }
  384.     }
  385.     /**
  386.      * @Route("extra/olvidoPassword", name="olvidoPasswordMail",  methods="POST" )
  387.      */
  388.     public function olvidoPassword(Request $request)
  389.     {
  390.         $correo = $request->request->get("correo");
  391.         $cuenta = null;
  392.         if (isset($correo)) {
  393.             $cuenta = $this->serviceUsuario->buscaCuentabyCorreo($correo, '');
  394.         }
  395.         if ($cuenta != null) {
  396.             $idiomaCuenta = "";
  397.             $mailTemplate = "";
  398.             $idiomaCuenta = $cuenta->getConfiguracion()->getValor()['languages']['languageSelected'];
  399.             switch (strtoupper($idiomaCuenta)) {
  400.                 case "ES":
  401.                     $mailTemplate = "mail/mailOlvidoPassword_es.html.twig";
  402.                     $subject = 'Reestablecer contraseña';
  403.                     break;
  404.                 case "EN":
  405.                     $mailTemplate = "mail/mailOlvidoPassword_en.html.twig";
  406.                     $subject = 'Reset password';
  407.                     break;
  408.                 case "FR":
  409.                     $mailTemplate = "mail/mailOlvidoPassword_fr.html.twig";
  410.                     $subject = 'Réinitialiser le mot de passe';
  411.                     break;
  412.                 default:
  413.                     $mailTemplate = "mail/mailOlvidoPassword_en.html.twig";
  414.                     $subject = 'Reset password';
  415.             }
  416.             $message = (new \Swift_Message())
  417.                 ->setFrom('urki-system@besa.es')
  418.                 ->setTo($cuenta->getEmail())
  419.                 ->setBody(
  420.                     $this->renderView(
  421.                         $mailTemplate,
  422.                         array(
  423.                             'name'   => $cuenta->getContacto(),
  424.                             'token'  => $cuenta->getToken(),
  425.                             'locale' => $cuenta->getConfiguracion()->getValor()['languages']['languageSelected'],
  426.                             'usr'    => $cuenta->getId(),
  427.                         )
  428.                     ),
  429.                     'text/html'
  430.                 )->setSubject($subject);
  431.             $this->mailer->send($message);
  432.             $response =  new Response('true', Response::HTTP_OK);
  433.             return $response;
  434.         } else {
  435.             $response =  new Response('false', Response::HTTP_BAD_REQUEST);
  436.             return $response;
  437.         }
  438.     }
  439.     /**
  440.      * @Route("extra/{_locale}/nuevoPassword", defaults={"_locale"="es"}, name="muevaPassword",  methods="POST" )
  441.      */
  442.     public function nuevaPassword(Request $request)
  443.     {
  444.         $id = $request->request->get("usuario");
  445.         $token  = $request->request->get("token");
  446.         $password = $request->request->get("password");
  447.         if (isset($id, $token, $password)) {
  448.             if ($this->serviceUsuario->nuevaPassword($id, $token, $password)) {
  449.                 $response =  new Response('true', Response::HTTP_OK);
  450.                 return $response;
  451.             } else {
  452.                 $response =  new Response($token, Response::HTTP_BAD_REQUEST);
  453.                 return $response;
  454.             }
  455.         } else {
  456.             $response =  new Response('false', Response::HTTP_BAD_REQUEST);
  457.             return $response;
  458.         }
  459.         return true;
  460.     }
  461.     public function enviarCorreoCuentaNueva(Cuenta $cuenta)
  462.     {
  463.         $idiomaCuenta = "";
  464.         $mailTemplate = "";
  465.         $idiomaCuenta = $cuenta->getConfiguracion()->getValor()['languages']['languageSelected'];
  466.         switch (strtoupper($idiomaCuenta)) {
  467.             case "ES":
  468.                 $mailTemplate = "mail/registration_es.html.twig";
  469.                 $subject = 'Bienvenido a Urki-System';
  470.                 break;
  471.             case "EN":
  472.                 $mailTemplate = "mail/registration_en.html.twig";
  473.                 $subject = 'Welcome to Urki-System';
  474.                 break;
  475.             case "FR":
  476.                 $mailTemplate = "mail/registration_fr.html.twig";
  477.                 $subject = 'Bienvenue à Urki-System';
  478.                 break;
  479.             default:
  480.                 $mailTemplate = "mail/registration_en.html.twig";
  481.                 $subject = 'Welcome to Urki-System';
  482.         }
  483.         $message = (new \Swift_Message('Bienvenido'))
  484.             ->setFrom('urki-system@besa.es')
  485.             ->setTo($cuenta->getEmail())
  486.             ->setBody(
  487.                 $this->renderView(
  488.                     $mailTemplate,
  489.                     array(
  490.                         'name' => $cuenta->getContacto(),
  491.                         'token' => $cuenta->getToken(),
  492.                         'locale' => $cuenta->getConfiguracion()->getValor()['languages']['languageSelected'],
  493.                         'usr' => $cuenta->getId()
  494.                     )
  495.                 ),
  496.                 'text/html'
  497.             )->setSubject($subject);
  498.         //$mailer = new \Swift_Mailer();
  499.         $this->mailer->send($message);
  500.     }
  501.     /**
  502.      * @Route("extra/compruebaAdmin", name="compruebaAdmin")
  503.      */
  504.     public function compruebaAdminPassword(Request $request)
  505.     {
  506.         $id = $request->request->get("usuario");
  507.         $token  = $request->request->get("token");
  508.         $usuarioAdmin = $request->request->get("usuarioadmin");
  509.         $password = $request->request->get("password");
  510.         if ($this->serviceUsuario->compruebaAdmin($id, $token, $password, $usuarioAdmin)) {
  511.             $response =  new Response('true', Response::HTTP_OK);
  512.             return $response;
  513.         } else {
  514.             $response =  new Response('false', Response::HTTP_BAD_REQUEST);
  515.             return $response;
  516.         }
  517.     }
  518.     /*
  519.      * VISTAS
  520.      */
  521.     /**
  522.      * @Route("extra/{_locale}/generaPassword", name="generaPassword1vez")
  523.      */
  524.     public function generarPassword(Request $request)
  525.     {
  526.         $id = 0;
  527.         $token = "";
  528.         if ($request->query->get('usr') != null && $request->query->get('usr') != "") {
  529.             $usr = $request->query->get('usr');
  530.             $token = $request->query->get('token');
  531.             //$element = explode('_',$usr,2);
  532.             $id = $usr;
  533.             //$token=$element[1];
  534.         }
  535.         if ($id != 0 && $token != "") {
  536.             return $this->render('password/generarPassord.html.twig', [
  537.                 'usr' => $id,
  538.                 'token' => $token
  539.             ]);
  540.         } else {
  541.             return $this->render('error.html.twig');
  542.         }
  543.     }
  544.     /**
  545.      * @Route("extra/{_locale}/olvidoPassword", defaults={"_locale"="es"}, requirements={"_locale"="en|fr|es"}, name="regeneraPassword")
  546.      */
  547.     public function regenerarPassword(Request $request)
  548.     {
  549.         $id = 0;
  550.         $token = "";
  551.         if ($request->query->get('usr') != null && $request->query->get('usr') != "") {
  552.             $usr = $request->query->get('usr');
  553.             $token = $request->query->get('token');
  554.             $usuario = $this->serviceUsuario->findCuentabyId($usr);
  555.             //dd($usuario);
  556.             //dd($usuario->getToken());
  557.             //dd($usuario);
  558.             if (!$usuario  || $usuario->getToken() != $token) {
  559.                 return $this->render('error.html.twig');
  560.             }
  561.         }
  562.         return $this->render('password/olvidoPassword.html.twig', [
  563.             'usr' => $usuario->getId(),
  564.             'token' => $token,
  565.             'name'   => $usuario->getContacto()
  566.         ]);
  567.     }
  568.     /*
  569.      * FIN VISTA
  570.      */
  571. }