如何在数据库中存储Symfony2"access_control"信息?

Mar*_*tto 8 php symfony

我正在使用Symfony2,我的用户和角色已存储在我的数据库中.如果我设置类似下面的东西,security.yml那么效果很好:

access_control:
   - { path: ^/admin, role: ROLE_ADMIN}
   - { path: ^/users, role: ROLE_MANAGER}
Run Code Online (Sandbox Code Playgroud)

但我想将此access_control信息存储在数据库中,因此我系统中的用户可以使用管理界面更改权限本身.

我查看了ACL和FOSUserBundle但无法找到解决方案.我发现我可以用类似的东西检查权限,if ($user->hasRole($role))但我需要在每个控制器中执行此操作.

有没有办法定义动态"access_control"功能?也许就像将access_control重定向到某个可能返回true或false的类.有解决方案吗

Ale*_*lex 5

最好的方法是设置DB_ROLE_CHECK您要根据数据库存储角色验证的操作/服务上设置的特定角色(例如).

然后,您将创建一个安全选民,DB_ROLE_CHECK根据您的数据库条目挂钩并验证您的请求.

看到: