Ver Mensaje Individual
  #7 (permalink)  
Antiguo 24/07/2014, 04:39
Avatar de Delek
Delek
 
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 75
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Campo password vacio

Si, desde Chrome borre todos los datos de navegación para asegurarme.

Yo creo que me sale por el propio contrrolador, lo raro es que si desde Twig le pongo value null, no se por que no me lo respeta.

Código:
	public function perfilAction()
	{
		$peticion = $this->getRequest();
		
		$usuario = $this->get('security.context')->getToken()->getUser();
		$formulario = $this->createForm(new UsuarioPerfilType(), $usuario);
		
		$passwordOriginal = $formulario->getData()->getPassword();
		$formulario->handleRequest($peticion);
		
		if ($formulario->isValid()) {
			// Si el usuario no ha cambiado el password, su valor es null después de hacer el getRequest(),
			// por lo que hay que recuperar el valor $passwordOriginal
			if (null == $usuario->getPassword()) {
				$usuario->setPassword($passwordOriginal);
			// Si el usuario ha cambiado su password, hay que codificarlo antes de guardarlo
			} else {
				$encoder = $this->get('security.encoder_factory')->getEncoder($usuario);
				$passwordCodificado = $encoder->encodePassword($usuario->getPassword(),$usuario->getSalt());
				$usuario->setPassword($passwordCodificado);
			}
			
			$em = $this->getDoctrine()->getManager();
			$em->persist($usuario);
			$em->flush();
			
			$this->get('session')->getFlashBag()->add('info', 'Los datos de tu perfil se han actualizado correctamente');

			return $this->redirect($this->generateUrl('compras'));
		}
		
		
		return $this->render('UsuariosBundle:Default:perfil.html.twig', array(
				'usuario' => $usuario,
				'formulario' => $formulario->createView()
		));
	}