Crear un Mensaje de Error.

22 views
Skip to first unread message

Andrei Darie

unread,
Feb 10, 2012, 1:15:07 PM2/10/12
to symfony-es
Buenas a todos,

Estoy desarrollando my proyecto para la uni y no entiendo una cosa.
Desconosco el nombre que tiene el objeto que me genera los errores.

He visto por ejemplo cuando explican el tema de crear un login en la
pagina oficial ponen este ejemplo:

http://symfony.com/doc/current/book/security.html


if ($request->attributes-
>has(SecurityContext::AUTHENTICATION_ERROR)) {
$error = $request->attributes-
>get(SecurityContext::AUTHENTICATION_ERROR);
} else {
$error = $session-
>get(SecurityContext::AUTHENTICATION_ERROR);
}

Entiendo que $request->attributes-
>get(SecurityContext::AUTHENTICATION_ERROR) devuelve un objeto que
desconsco el nombre Que tiene una propiedad con mensaje. Cuando se lo
pasas al Twig para que lo pinte, en el Twig hace referencia a :

{% if error %}
<div>{{ error.message }}</div>
{% endif %}

Sabeis que nombre tiene el objeto y que libreria necesito incluir en
mi controlador para que pueda crear ese tipo de objeto ?

Saludos a todos,

Carlos Zuniga

unread,
Feb 11, 2012, 7:28:15 AM2/11/12
to symfo...@googlegroups.com
2012/2/10 Andrei Darie <avd...@gmail.com>:

Una manera simple de ver que clase es ese objeto es un simple
`die(get_class($error))` o si quieres ver más información del objeto
prueba con Doctrine\Common\Util\Debug::dump

En este caso el error de login es un
Symfony\Component\Security\Core\Exception\AuthenticationException,
pero el error ya te lo da el sistema de seguridad de Symfony así que
no es necesario crearlo tu mismo. Podrías explicar mejor que quieres
hacer?

Saludos
--
Linux Registered User # 386081
A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
de leer manuales.

Andrei Darie

unread,
Feb 12, 2012, 5:02:20 PM2/12/12
to symfony-es

Quería que me diera un error cuando intenta loggearse un usuario sin
Roles definidos.

Actualmente los roles los defino en la BD. Y si usuario intenta
validarse sin ROL definido que de error. SI tiene ROL después pasa un
controlador que redirige al perfil por defecto que tiene creado el
usuario usuario, admin o Y...
Era para generar los errores para los views ya que de definido en la
plantilla :

error.message

Bueno he visto que si haces un array $error['mensaje']="No tienes
Roles" funciona y cuando se lo pasas a la plantilla lo interpreta
bien. Sino puedo crear los objetos de Symfony\Component\Security\Core
\Exception\

Muchas gracias por la info !! usaré lo que has comentado de
Getclass() :) me irá muy bien para ver los objetos. !!

:)



Carlos Zuniga

unread,
Feb 12, 2012, 7:35:00 PM2/12/12
to symfo...@googlegroups.com
2012/2/12 Andrei Darie <avd...@gmail.com>:

>
> Quería que me diera un error cuando intenta loggearse un usuario sin
> Roles definidos.
>

Para eso puedes revisar la parte de autorización en la configuración
de seguridad con access_control:
http://symfony.com/doc/current/book/security.html#authorization

Si el usuario no tiene los roles adecuados, Symfony bota un
AccessDeniedException.

Si necesitas algo más complejo, puedes usar un login handler:
http://www.reecefowell.com/2011/10/26/redirecting-on-loginlogout-in-symfony2-using-loginhandlers/

Reply all
Reply to author
Forward
0 new messages