Exemplo n.º 1
0
 /**
  * Muestra el formulario para que se registren los nuevos usuarios. Además
  * se encarga de procesar la información y de guardar la información en la base de datos
  */
 public function registroAction(Request $peticion)
 {
     $em = $this->getDoctrine()->getManager();
     $usuario = new Usuario();
     $usuario->setPermiteEmail(true);
     $formulario = $this->createForm(new UsuarioRegistroType(), $usuario);
     $formulario->handleRequest($peticion);
     if ($formulario->isValid()) {
         // Completar las propiedades que el usuario no rellena en el formulario
         $usuario->setSalt(md5(time()));
         $encoder = $this->get('security.encoder_factory')->getEncoder($usuario);
         $passwordCodificado = $encoder->encodePassword($usuario->getPassword(), $usuario->getSalt());
         $usuario->setPassword($passwordCodificado);
         // Guardar el nuevo usuario en la base de datos
         $em->persist($usuario);
         $em->flush();
         // Crear un mensaje flash para notificar al usuario que se ha registrado correctamente
         $this->get('session')->getFlashBag()->add('info', '¡Enhorabuena! Te has registrado correctamente');
         // Loguear al usuario automáticamente
         $token = new UsernamePasswordToken($usuario, null, 'frontend', $usuario->getRoles());
         $this->container->get('security.context')->setToken($token);
         return $this->redirect($this->generateUrl('_welcomeBase'));
     }
     return $this->render('UsuarioBundle:Default:registro.html.twig', array('formulario' => $formulario->createView()));
 }
Exemplo n.º 2
0
 public function load(ObjectManager $manager)
 {
     // Obtener todas las ciudades de la base de datos
     $ciudades = $manager->getRepository('CiudadBundle:Ciudad')->findAll();
     for ($i = 1; $i <= 200; $i++) {
         $usuario = new Usuario();
         $usuario->setNombre($this->getNombre());
         $usuario->setApellidos($this->getApellidos());
         $usuario->setEmail('usuario' . $i . '@localhost');
         $usuario->setSalt(base_convert(sha1(uniqid(mt_rand(), true)), 16, 36));
         $passwordEnClaro = 'usuario' . $i;
         $encoder = $this->container->get('security.encoder_factory')->getEncoder($usuario);
         $passwordCodificado = $encoder->encodePassword($passwordEnClaro, $usuario->getSalt());
         $usuario->setPassword($passwordCodificado);
         $ciudad = $ciudades[array_rand($ciudades)];
         $usuario->setDireccion($this->getDireccion($ciudad));
         $usuario->setCiudad($ciudad);
         // El 60% de los usuarios permite email
         $usuario->setPermiteEmail(rand(1, 1000) % 10 < 6);
         $usuario->setFechaAlta(new \DateTime('now - ' . rand(1, 150) . ' days'));
         $usuario->setFechaNacimiento(new \DateTime('now - ' . rand(7000, 20000) . ' days'));
         $dni = substr(rand(), 0, 8);
         $usuario->setDni($dni . substr("TRWAGMYFPDXBNJZSQVHLCKE", strtr($dni, "XYZ", "012") % 23, 1));
         $usuario->setNumeroTarjeta('1234567890123456');
         $manager->persist($usuario);
     }
     $manager->flush();
 }