我已经在Symfony 3.x项目中实现了用户注册/登录模式。我的实施基于http://symfony.com/doc/current/cookbook/doctrine/registration_form.html(以及其他)。
嗯,它有效,但它基于角色,现在我想将其更改为权限,例如:" can_edit"," can_post",&# 34; can_delete"等
它不像角色那样工作,没有像#34;角色层次结构这样的东西,除了我控制用户访问的逻辑将比编辑security.yml - &gt ; ACCESS_CONTROL。
那我怎么能做到这一点?
不过,我已经做过的是:阅读本文:http://symfony.com/doc/current/cookbook/security/voters.html:)
创建表格"权限"和" user_permission"。 "许可" table有一个id和一个"符号" (文本)列(例如,值为==" can_post")。然后user_permission有" user_id"和" permission_id"字段。
我还创建了一个"权限"实体(我使用ORM)和修改后的用户实体,现在它与"权限"加入:
/**
*
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Permission", cascade = {"persist"})
*/
private $userPermissions;
但我不知道我是否可以选择这种方式?接下来要做什么?我对Symfony很新。
是的,我不认为我想使用ACL,因为Symfony的文档中有这个评论:使用ACL并不是一件容易的事,对于更简单的用例,它可能是 矫枉过正。如果您的权限逻辑可以通过编写来描述 一些代码(例如,检查博客是否归当前用户所有),然后 考虑使用选民。