我第一次使用Symfony(2.x),我对角色的定义,角色层次结构以及如何将它们分配给个人用户提出了一些问题。
我有兴趣将角色和角色层次结构存储在数据库中(而不是security.yml);但是,我找不到任何支持此文件的文件。这是可取的吗?
我有兴趣拥有一个可以添加新角色和定义角色层次结构的管理模块;但是,让admin模块修改security.yml或其他一些配置文件似乎是一个坏主意。
这显然要求ACL也可以存储在数据库中。
我过去使用Zend Framework成功实现了这一点,并且希望对Symfony2做同样的事情。
答案 0 :(得分:4)
也许你可能想看看FOSUserBundle
答案 1 :(得分:4)
解决方案:
以下cookbook条目是关于向/从数据库存储/检索用户和角色 “如何从数据库(实体提供程序)加载安全用户” http://symfony.com/doc/current/cookbook/security/entity_provider.html
长话短说,您的role
和user
实体类必须实施RoleInterface和UserInterface / AdvancedUserInterface,您必须制作一些对security.yml
答案 2 :(得分:1)
您需要将角色放在数据库中,并使用多对多关系对其进行映射。然后在角色上构建一些管理员。我写了如何更改用户以在http://blog.jmoz.co.uk/symfony2-fosuserbundle-role-entities使用m2m角色。我没有角色层次结构,所以它仍然存储在配置中。