Пример #1
0
 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));
 }
Пример #2
0
 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'));
 }