personalizar los mensajes de error del formulario login

1,177 views
Skip to first unread message

Danny alfonzo Viana perez

unread,
Apr 1, 2012, 9:54:47 PM4/1/12
to symfo...@googlegroups.com
Hola, quisiera cambiar los mensajes de error del login de symfony 2, pero en ningún tutorial me dicen como hacerlo! 

security:
    
    firewalls:
        frontend:
            pattern:  ^/
            anonymous: ~
            form_login:
                login_path: /usuario/login/
                check_path: /usuario/login_check/
            logout:
                path: /usuario/logout/
                target: /
            remember_me:
                key:      sitio123
                lifetime: 3600
    access_control:
        - { path: ^/usuario/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/usuario/registro, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/usuario/*, roles: ROLE_USUARIO }


    providers:
        usuarios:
            entity: { class: Sitio\UsuarioBundle\Entity\Usuario, property: email }

    encoders:
        Sitio\UsuarioBundle\Entity\Usuario: { algorithm: sha512, iterations:10 }

no hay manera de tipificar los mensajes de error? siempre sale el mismo "Bad credentials"


German Macas

unread,
Apr 2, 2012, 3:32:42 PM4/2/12
to symfo...@googlegroups.com
Que tal,

Aqui hay documentación en español para las traducciones, espero que te sirva:

http://gitnacho.github.com/symfony-docs-es/book/translation.html





Att.
Germán Macas
@gerod006


Date: Sun, 1 Apr 2012 18:54:47 -0700
From: dannyfi...@gmail.com
To: symfo...@googlegroups.com
Subject: [symfony-es] personalizar los mensajes de error del formulario login
--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Google Groups.
Para publicar en este grupo, envía un email a symfo...@googlegroups.com
Para darte de baja, envía un email a symfony-es+...@googlegroups.com
El resto de opciones puedes encontrarlas en http://groups.google.com/group/symfony-es?hl=es

Danny alfonzo Viana perez

unread,
Apr 2, 2012, 3:44:49 PM4/2/12
to symfo...@googlegroups.com
Hola y gracias por responder, en realidad no trato de traducir, sino de customizar! ya que todavía no he tocado el capitulo de traducciones en mi guía de aprendizaje, lo que quiero hacer es algo similar a lo que hago en el modelo de los usuarios donde tipifico el mensaje de error en la validación del campo:

en 
Sitio\UsuarioBundle\Entity\Usuaio.php

  /**
     * @var string $password
     *
     * @ORM\Column(name="password", type="string", length=255)
     * @Assert\MinLength(limit = 6, message = "La contraseña debe tener 6 caracteres")
     * 
     */
    private $password;

pero como el form de login no lo construyo yo sino el firewall no tengo "o no se como hacerlo" modificar los mensajes de error
Para darte de baja, envía un email a symfony-es+unsubscribe@googlegroups.com

German Macas

unread,
Apr 2, 2012, 4:47:52 PM4/2/12
to symfo...@googlegroups.com
Hay dos formas de hacerlo, entrando al core de symfony, donde se genera el mensaje de error o por traducciones, para el caso de formulario de login,
la recomendable es hacerlo por traduccion


Date: Mon, 2 Apr 2012 12:44:49 -0700
From: dannyfi...@gmail.com
To: symfo...@googlegroups.com
Subject: Re: [symfony-es] personalizar los mensajes de error del formulario login
Para darte de baja, envía un email a symfony-es+...@googlegroups.com

@neftali_af

unread,
Apr 3, 2012, 5:33:32 AM4/3/12
to symfony-es
Hola Danny, estoy totalmente de acuerdo con Germán... Tienes estas
opciones:

1.) Manipular el Core. No recomendable (supongo que incluso puedes
perder cambios en caso de actualizar las librerías de Symfony)
2.) Puedes poner un mensaje por defecto en tu plantilla AcmeBundle/
Resources/view/login.html.twig:
{% if error %}
<div id='error' class='error'>Validación errónea</div>
{% endif %}
No aprovechas la información que te envía el core.
3.) Hacer la traducción. Es sencillo, sigue los siguientes pasos:
3.a) Debes poner en tu plantilla de login ( AcmeBundle/Resources/view/
login.html.twig), algo como:
{% if error %}
<div id='error' class='error'>{{ error.message | trans}}</div>
{% endif %}
3.b) Debes crear un catalogo de traducción del inglés al español en tu
Bundle ( AcmeBundle/Resources/translations/messages.es.xliff)
<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext"
original="file.ext">
<body>
<trans-unit id="1">
<source>The presented password cannot be empty.</
source>
<target>El campo contraseña no puede estar vacío.</
target>
</trans-unit>
<trans-unit id="2">
<source>Bad credentials</source>
<target>Validación errónea</target>
</trans-unit>
<trans-unit id="3">
<source>The presented password is invalid.</source>
<target>La contraseña introducida no es válida.</
target>
</trans-unit>
</body>
</file>
</xliff>

3.c) Da de alta el servicio de traducción. Añade en el app/config/
config.yml lo siguiente:
framework:
translator: { fallback: %locale% }

Mi locale en parameters.ini es el siguiente:
locale=es

Suerte, y espero haber podido ayudarte.
@neftali_af




On Apr 2, 9:47 pm, German Macas <gerod...@hotmail.com> wrote:
> Hay dos formas de hacerlo, entrando al core de symfony, donde se genera el mensaje de error o por traducciones, para el caso de formulario de login,
> la recomendable es hacerlo por traduccion
>
> Date: Mon, 2 Apr 2012 12:44:49 -0700
> From: dannyfilth2...@gmail.com
> To: symfo...@googlegroups.com
> Subject: Re: [symfony-es] personalizar los mensajes de error del formulario login
>
> Hola y gracias por responder, en realidad no trato de traducir, sino de customizar! ya que todavía no he tocado el capitulo de traducciones en mi guía de aprendizaje, lo que quiero hacer es algo similar a lo que hago en el modelo de los usuarios donde tipifico el mensaje de error en la validación del campo:
> en Sitio\UsuarioBundle\Entity\Usuaio.php
>   /**     * @var string $password     *     * @ORM\Column(name="password", type="string", length=255)     * @Assert\MinLength(limit = 6, message = "La contraseña debe tener 6 caracteres")     *      */    private $password;
> pero como el form de login no lo construyo yo sino el firewall no tengo "o no se como hacerlo" modificar los mensajes de error
>
> On Monday, April 2, 2012 3:02:42 PM UTC-4:30, Gerod006 wrote:
>
> Que tal,
>
> Aqui hay documentación en español para las traducciones, espero que te sirva:
>
> http://gitnacho.github.com/symfony-docs-es/book/translation.html
>
> Att.
> Germán Macas
> @gerod006
>
> Date: Sun, 1 Apr 2012 18:54:47 -0700
> From: dannyfilth2...@gmail.com
> To: symfo...@googlegroups.com
> Subject: [symfony-es] personalizar los mensajes de error del formulario login
>
> Hola, quisiera cambiar los mensajes de error del login de symfony 2, pero en ningún tutorial me dicen como hacerlo!
> security:        firewalls:        frontend:            pattern:  ^/            anonymous: ~            form_login:                login_path: /usuario/login/                check_path: /usuario/login_check/            logout:                path: /usuario/logout/                target: /            remember_me:                key:      sitio123                lifetime: 3600    access_control:        - { path: ^/usuario/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }        - { path: ^/usuario/registro, roles: IS_AUTHENTICATED_ANONYMOUSLY }        - { path: ^/usuario/*, roles: ROLE_USUARIO }
>
>     providers:        usuarios:            entity: { class: Sitio\UsuarioBundle\Entity\Usuario, property: email }
>     encoders:        Sitio\UsuarioBundle\Entity\Usuario: { algorithm: sha512, iterations:10 }
> no hay manera de tipificar los mensajes de error? siempre sale el mismo "Bad credentials"
>
> --
>
> Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Google Groups.
>
> Para publicar en este grupo, envía un email a symfo...@googlegroups.com
>
> Para darte de baja, envía un email a symfony-es+...@googlegroups.com
>
> El resto de opciones puedes encontrarlas enhttp://groups.google.com/group/symfony-es?hl=es

Ricardo Alcantara Gomez

unread,
Aug 19, 2014, 11:15:12 AM8/19/14
to symfo...@googlegroups.com
Excelente muchas gracias. 
Reply all
Reply to author
Forward
0 new messages