Hola cordial saludo, lo que deseo saber es como puedo crear un Login utilizando tres tablas: Usuarios Roles Ususarios_Roles
En Internet he encontrado cantidad de tutoriales pero algunos tiene los roles estáticos, los cuales si quiero cambiar debo hacerlo mediante código, todo lo contrario a lo que deseo hacer, que los roles sean extraídos de la base de datos y según eso se le permita el acceso a ciertas paginas a dicho usuario.
Les agradezco inmensamente si me pueden colaborar con algún link hacia un tutorial que me sirva de ejemplo, es para mi proyecto de grado y no tengo mucho tiempo. Gracias!
Respuestas
En mi opinión estás complicando las cosas innecesariamente. En Symfony, los roles de los usuarios son una propiedad de la clase User
, por lo que son tan dinámicos como cualquier otra propiedad. Muchas aplicaciones hacen un simple return array('ROLE_USER')
en el método getRoles()
... pero nada impide a tu aplicación manejas esta propiedad roles
y asignar/desasignar roles mediante una interfaz de administración.
Por otra parte, para restringir el acceso a determinadas acciones y recursos en función de los roles, la recomendación es combinar access_control
, @Security
y voters según tus necesidades. Cuándo utilizar cada una se explica brevemente en este capítulo de las buenas prácticas oficiales de Symfony.
@javiereguiluz
Hola @YulianDavid94,
Creo que estás reinventando la rueda. Te aconsejo usar el FOSUserBundle que ya trae todo lo que necesitas con la leve diferencia que los roles lo manejan con grupos.
Revísate la documentación de FOSUserBundle
Saludos.
@miguelplazasr
@javiereguiluz @miguelplazasr Gracias por responder, ya he implementado FOSUserBundle pero tengo la siguiente cuestion:
- Cuando registro un nuevo Usuario este una vez guardado se Auto-Logea, ¿Como puedo desactivar eso?
- ¿de que manera puedo agregar un Choice en el Form de Register, para cuando desee agregar un nuevo usuario, pueda seleccionar el grupo al que pertenece.
Gracias!
@YulianDavid94