gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 12:35:02 26 4
gpt4 key购买 nike

我正在使用 Symfony2,我的数据库中已经存储了用户和角色。如果我在 security.yml 中设置如下内容,效果很好:

access_control:
- { path: ^/admin, role: ROLE_ADMIN}
- { path: ^/users, role: ROLE_MANAGER}

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

我查看了 ACL 和 FOSUserBundle,但找不到解决方案。我发现我可以使用类似 if ($user->hasRole($role)) 的方法检查权限,但我需要在每个 Controller 中都这样做。

有没有办法定义一个动态的“access_control”功能?也许像将 access_control 重定向到某个可以返回 true 或 false 的类。有什么解决办法吗?

最佳答案

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

然后您将创建一个连接到 DB_ROLE_CHECK 的安全投票器,并根据您的数据库条目验证您的请求。

参见:

关于php - 如何在数据库中存储 Symfony2 "access_control"信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com