定义角色我对角色的一些问题,我想明白了很久:在捆绑配置
我们有一些捆绑,我们在几个项目中使用。我们希望在bundle配置中定义角色,这样我们就不会将角色复制到security.yml
中的role_hierarchy中。有没有干净的方法来做到这一点?
我的第一个想法是将其导入role_hierarchy这样的:
role_hierarchy:
ROLE_ADMIN: ROLE_USER, ROLE_TRANSLATOR
ROLE_SUPER_ADMIN: ROLE_ADMIN
ROLE_NOT_APPROVED_USER: ROLE_USER
ROLE_TRANSLATOR: ROLE_USER
"%base_bundle.role.hierarchy%"
当然,这是行不通的。有没有可能这样做(在yaml中合并数组)?
我的另一个想法是将角色存储在数据库中,但在我看来这是过度杀毒,因为我们没有动态角色。一切都是静态的。
是否有任何解决方法来实现我尝试做的事情?或者将它定义在一个包中是一个好主意?
2.我用角色权限(ROLE_POST_EDIT
,ROLE_POST_DELETE
...)和选民拒绝或批准对资源的访问。所以最后有很多角色。将角色与权限混合使用是一个好主意吗?如果不是最佳做法是什么?
编辑:我觉得ROLE_POST_EDIT
和ROLE_USER
或ROLE_ADMIN
之间的差异。用户有ROLE_USER
,因为他是用户。但用户有“权限ROLE_EDIT_POST
”才能编辑帖子。在我看来,有一个区别。无论如何,我应该关心这种差异还是有其他的做法如何做?
你有没有试过这样: '''role_hierarchy: ROLE_SUPER_ADMIN:ROLE_ADMIN ROLE_NOT_APPROVED_USER:ROLE_USER ROLE_TRANSLATOR:ROLE_USER ROLE_ADMIN:[ROLE_USER,ROLE_TRANSLATOR]''' – rokas
不知道这将帮助你,但结帐这:http://php-and-symfony.matthiasnoback.nl/2012/07/symfony2-security-creating-dynamic-roles-using-roleinterface/ –
@rokas问题当然是,我我将数组参数'“%base_bundle.role.hierarchy%”'传递给角色层次结构。但问题不在于它。 @ B.Assem感谢您的链接。我已经看到了它,但可能没有想太多。事实上,这可以是一条路。所以我可以编写一个Role类并将bundle参数传递给它。 – user254319