5

我用 ACL 设置了 Sonata Admin。我有不同的用户、组和权限,它们工作正常。为此,我遵循了有关 ACL 的 Sonata Admin 文档

所以这是我的问题:确保后端(管理员)用户只能查看、编辑和删除他们使用 Symfony 和 Sonata Admin 的内置 ACL 机制创建的实体的干净方法是什么?一旦对象保存在 ACL 表中(来自Sonata 文档),Sonata Admin 就会自动存储对象的所有者(创建者):

Owner:创建对象时,当前登录的用户被设置为该对象的所有者,并被授予该对象的所有访问权限;

Stackoverflow 上已经回答了相同的问题,但答案没有详细说明如何使用 ACL 解决它。

4

3 回答 3

4

有一个新的 Symfony 包可以做到这一点:https ://github.com/coopTilleuls/CoopTilleulsAclSonataAdminExtensionBundle

您需要做的就是在 Sonata Admin 中启用 ACL,安装捆绑包并激活它。非常简单有效,我在 Symfony2 项目中使用 Sonata Admin 2.2。

于 2015-01-23T14:09:31.960 回答
3

我看到了两种方法:

我无法做任何这些来做我需要的非常简单的事情,但我认为这就是我的想法。

实际上,这是我花了很多时间和数千行代码但没有取得巨大成功的 Symfony 的许多事情之一......这样简单的需求不应该像屁股一样痛苦......

于 2013-06-10T15:01:26.297 回答
2

不要将EDIT权限授予用户。他们可以编辑自己拥有的实例,但不能编辑其他人的实例。

我使用这个配置:

#app/config/config.yml
sonata_admin:
    security:
        information:
            STAFF:    [VIEW, LIST, CREATE]
            EDITOR:   [OPERATOR, EXPORT]
            ADMIN:    [MASTER]

文档

于 2014-01-02T15:04:56.367 回答