public function blanquearPasswordAction(Request $request) { $id = $request->get('id'); $em = $this->get('doctrine.orm.entity_manager'); $repo = $em->getRepository('UsuarioBundle:Usuario'); $usuario = $repo->find($id); $this->getAdminBC()->addItem($usuario, $this->generateUrl('admin_usuarios_detalle', array('id' => $usuario->getId())))->addItem('Blanquear contraseña'); $form = $this->createFormBuilder()->add('ok', 'checkbox', array('required' => true, 'label' => 'Estoy seguro de resetear la contraseña de este usuario'))->add('submit', 'submit', array('label' => 'Estoy seguro de regenerar la contraseña de este usuario', 'attr' => array('class' => 'btn-danger')))->getForm(); if ($request->isMethod(Request::METHOD_POST)) { $form->submit($request); if ($form->isValid()) { $newRandomPassword = Usuario::generateRandomPassword(); $usuario->setPassword($newRandomPassword); $this->encodeUserPassword($usuario); $em->persist($usuario); // Guardar clave $clave = new Clave(); $clave->setUsuario($usuario); $clave->setClave($usuario->getPassword()); $em->persist($clave); $em->flush(); // Enviar email $asunto = 'Nueva contraseña'; $body = $this->get('twig')->render('@Admin/emails/blanquear-password.html.twig', array('usuario' => $usuario, 'rawPassword' => $newRandomPassword)); $msg = \Swift_Message::newInstance($asunto, $body, 'text/html', 'utf8'); $msg->addFrom('*****@*****.**', 'Portal Brown'); $msg->addTo($usuario->getEmail(), $usuario->__toString()); $mail = $this->get('mailer'); $mail->send($msg); // Fin Enviar email $this->addFlash(Mensajes::TYPE_SUCCESS, 'La nueva contraseña ha sido enviada a ' . $usuario->getEmail()); return $this->redirect($this->generateUrl('admin_usuarios_detalle', array('id' => $usuario->getId()))); } } return $this->render('@Admin/Usuario/blanquear-password.html.twig', array('formulario' => $form->createView(), 'usuario' => $usuario)); }
public function resetPasswordAction(Request $request) { $codigo = $request->get(self::PARAM_CODIGO); $em = $this->get('doctrine.orm.entity_manager'); $repo = $em->getRepository('UsuarioBundle:Usuario'); $usuario = $repo->findOneByCodigo($codigo, $this->getParameter('secret')); $newRawPassword = Usuario::generateRandomPassword(); $encoder = $this->get('security.encoder_factory')->getEncoder($usuario); $newEncodedPassword = $encoder->encodePassword($newRawPassword, $usuario->getSalt()); $usuario->setPassword($newEncodedPassword); $em->persist($usuario); $em->flush(); // Envía el Email $asunto = "Nueva contraseña"; $body = $this->get('twig')->render('@Usuario/email/nueva-password.html.twig', array('newPassword' => $newRawPassword)); $msg = \Swift_Message::newInstance($asunto, $body, 'text/html', 'utf-8'); $msg->setFrom($this->container->getParameter('mailer_from'), $this->container->getParameter('mailer_from_name')); $msg->addTo($usuario->getEmail(), $usuario->__toString()); $this->get('mailer')->send($msg); // Fin Envía el Email $this->addFlash(Mensajes::TYPE_INFO, 'Le hemos enviado un correo con su nueva contraseña.'); return $this->redirect($this->generateUrl('site_homepage')); }