Symfony2:在数据库中存储用户、角色、角色层次结构和访问控制



我第一次使用Symfony (2.x),我对角色的定义、角色层次结构以及如何将它们分配给单个用户有一些疑问。

我感兴趣的是将角色和角色层次结构存储在数据库中(而不是security.yml);然而,我找不到任何支持这一点的文档。这样合适吗?

我有兴趣有一个管理模块,可以添加新的角色和定义角色层次结构;但是,通过admin模块修改安全性。Yml或其他配置文件似乎不是一个好主意。

这显然要求acl也可以存储在数据库中。

  • 有没有人有任何提示或文件,可能有助于这一点?
  • 这是一个坏主意,性能方面?

我已经成功地实现了这个与Zend框架在过去,并希望Symfony2做同样的。

也许您想看看FOSUserBundle

解决方案:

下面的食谱条目是关于在数据库中存储/检索用户和角色的"如何从数据库(实体提供程序)加载安全用户"http://symfony.com/doc/current/cookbook/security/entity_provider.html

长话短说,你的roleuser实体类必须实现RoleInterface和UserInterface/AdvancedUserInterface,你必须对你的security.yml做一些改变

您需要将角色放入数据库中,并使用多对多关系对其进行映射。然后在角色上构建一些管理。我在http://blog.jmoz.co.uk/symfony2-fosuserbundle-role-entities上编写了如何将User更改为使用m2m角色。我还没有到角色层次结构,所以它仍然存储在配置中。

最新更新