2011-11-18 23 views
9

He estado trabajando con Symfony (2.x) por primera vez y tenía algunas preguntas sobre la definición de roles, jerarquía de funciones y cómo se pueden asignar a usuarios individuales.Symfony2: almacenamiento de usuarios, roles, jerarquía de roles y controles de acceso en la base de datos

Estaba interesado en almacenar los roles y la jerarquía de funciones en una base de datos (en lugar de security.yml); Sin embargo, no puedo encontrar ninguna documentación que respalde esto. ¿Es esto aconsejable?

Estaba interesado en tener un módulo de administrador que pueda agregar nuevos roles y definir jerarquías de roles; sin embargo, tener el módulo de administración para modificar security.yml o algún otro archivo de configuración parece una mala idea.

Obviamente, esto requeriría que las ACL también se puedan almacenar en una base de datos.

  • ¿Alguien tiene alguna sugerencia o documentación que pueda ayudar con esto?
  • ¿Es una mala idea, el rendimiento es sabio?

He tenido éxito al implementar esto con Zend Framework en el pasado y esperaba hacer lo mismo con Symfony2.

+0

Veo que hay paquetes disponibles que conjuntamente pueden hacer este trabajo. FOSUserBundle, SonataAdminBundle, SonataUserBundle (que funciona en la parte superior de FOSUserBundle). También estoy empezando a desarrollar lo mismo en Symfony por primera vez. Por favor comparte tu experiencia. – vishal

Respuesta

1

Usted tendría que poner los papeles en el PP, y asignarla utilizando una relación de muchos a muchos. Luego construye un administrador en los roles. Escribí cómo cambiar el usuario para usar roles m2m en http://blog.jmoz.co.uk/symfony2-fosuserbundle-role-entities. No he llegado tan lejos como la jerarquía de roles, por lo que aún está almacenada en la configuración.

4

La solución:

La entrada siguiente libro de cocina está sobre el almacenamiento/recuperación de usuarios y roles a/desde la base de datos "Carga de Seguridad Los usuarios de la base de datos (el proveedor de Entidad)" http://symfony.com/doc/current/cookbook/security/entity_provider.html

para hacer el cuento largo, sus role y user clases de entidad tienen que implementar RoleInterface y UserInterface/AdvancedUserInterface y hay que hacer algunos cambios en su security.yml

Cuestiones relacionadas