SonataAdminBundle:根据字段值设置权限

时间:2016-01-27 11:16:14

标签: symfony acl sonata-admin

我有一个工作的SonataAdmin + FOSUser(WITHOUT SonataUserBundle)设置,启用了角色和ACL。这工作正常,每个用户都可以访问不同的管理员,具体取决于他们的角色。

现在我需要更深入一点。我想根据底层实体的关联值来限制对其中一个管理员的访问。

让我说我有这个:

/**
 * @ORM\Entity
 */
class Content
{
    /**
     * @var string
     *
     * @ORM\ManyToOne(targetEntity="ContentType", inversedBy="contents")
     */
    private $type;
}

/**
 * @ORM\Entity
 */
class ContentType
{
    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=255)
     */
    private $name;
}

我想要以下内容:

  • 拥有ROLE_XXXXX的用户:可以访问内容类型名称为“XXXXX”的所有内容
  • 拥有ROLE_YYYYY的用户:可以访问内容类型名称为“YYYYY”的所有内容 ...

当然,这也意味着在创建新内容或过滤内容列表时,用户不应该选择他们没有任何权限的内容类型。

我试过这个没有运气:

php app/console acl:set --role=ROLE_XXXXX MASTER MyBundle/ContentType:2

0 个答案:

没有答案