Symfony - 权限(权限)而不是角色

时间:2016-01-27 11:21:23

标签: php symfony-2.3 symfony

我已经在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并不是一件容易的事,对于更简单的用例,它可能是   矫枉过正。如果您的权限逻辑可以通过编写来描述   一些代码(例如,检查博客是否归当前用户所有),然后   考虑使用选民。

0 个答案:

没有答案