Php Symfony2中的权限管理方法
我正在创建一个Symfony2网站,该网站拥有用户,每个用户都可以拥有如下多个权限:Php Symfony2中的权限管理方法,php,symfony,user-permissions,symfony-security,Php,Symfony,User Permissions,Symfony Security,我正在创建一个Symfony2网站,该网站拥有用户,每个用户都可以拥有如下多个权限: User1: manage users , manage sales , manage repository User2: manage repository user3: manage sales , manage repository ... 对于这样的系统,正确的权限系统是什么? 角色或ACL或投票者或其他什么? 谢谢角色 如果要授予“常规”权限,则角色可以 例如,如果您需要用户能够管理所有或多个用户,
User1: manage users , manage sales , manage repository
User2: manage repository
user3: manage sales , manage repository
...
对于这样的系统,正确的权限系统是什么?角色
或ACL
或投票者
或其他什么?
谢谢角色
如果要授予“常规”权限,则角色可以
例如,如果您需要用户能够管理所有或多个用户,则可以为其创建一个角色,例如role\u user\u MANAGER
。或者,如果您想授予他管理销售的权限,您可以授予他角色\u sales\u MANAGER
角色
因此,基本上,当您对某些实体拥有有限的权限时,可以使用角色
您可以通过授予包含实体名称和id的角色(例如,ROLE\u MANAGER\u REPOSITORY\u 23
)将它们用于其他内容,然后使用自定义投票者,您可以知道具有该角色的用户可以管理id为23的存储库。尽管这种方法可行,但我个人不喜欢
国际计算语言学协会
如果您有大量的动态权限授予,特别是针对单个模型的,那么ACL就是一种方法。它通常性能稍差,因为它需要从数据存储中获取更多数据,但更适合于此目的
使用,授予和检查权限非常容易,甚至允许单个用户相互授予权限
此外,的介绍部分向您展示了这两种方法,并指出了每种方法的一些优缺点