Hola quisiera saber cómo puedo hacer para crear access_control
dinámicamente. Digamos que en mi fichero security.yml
tengo en access_control
un grupo de URLs por defectos con sus roles para acceder. Ahora si quisiera crear una nueva URL y su respectivo rol o roles para acceder dinámicamente cómo pudiera hacer, es decir, guardar esa access_control
en una BD y y gestionarla desde mi aplicación sin tener que modificar el fichero por defecto.
Respuestas
La respuesta a tu pregunta es sencilla: no tienes que usar access_control
en este caso. La seguridad de Symfony se divide en varios niveles, tal y como se explica en la sección sobre autorización del capítulo de seguridad del libro de buenas prácticas sobre Symfony.
El access_control
no está pensado para estas autorizaciones dinámicas que quieres hacer. En este caso, la solución óptima es definir un voter. En el mismo enlace que te he pasado antes puedes ver un ejemplo de cómo se hace. Lo mejor es que dentro de un voter puedes añadir tanto código como necesites, por lo que puedes usar el servicio de Doctrine para hacer consultas a la base de datos y así comprobar si el usuario tiene permiso de acceso o no.
@javiereguiluz
Muchas gracias Javier.
@ogonzalezf