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

时间:2011-11-18 06:59:28

标签: symfony acl hierarchy roles

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

我有兴趣将角色和角色层次结构存储在数据库中(而不是security.yml);但是,我找不到任何支持此文件的文件。这是可取的吗?

我有兴趣拥有一个可以添加新角色和定义角色层次结构的管理模块;但是,让admin模块修改security.yml或其他一些配置文件似乎是一个坏主意。

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

  • 有没有人有任何可能对此有所帮助的提示或文档?
  • 这是一个坏主意,表现明智吗?

我过去使用Zend Framework成功实现了这一点,并且希望对Symfony2做同样的事情。

3 个答案:

答案 0 :(得分:4)

也许你可能想看看FOSUserBundle

答案 1 :(得分:4)

解决方案:

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

长话短说,您的roleuser实体类必须实施RoleInterfaceUserInterface / AdvancedUserInterface,您必须制作一些对security.yml

的更改

答案 2 :(得分:1)

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