繁体   English   中英

Sonata Admin:让用户只编辑他们拥有的实体(ACL)

[英]Sonata Admin: Let users only edit entities they own (ACL)

我有使用ACL设置的Sonata Admin。 我有不同的用户,组和权限,工作正常。 为此,我按照ACL上的Sonata Admin文档进行了操作

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

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

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

有一个新的Symfony捆绑就是这样做: https//github.com/coopTilleuls/CoopTilleulsAclSonataAdminExtensionBundle

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

我看到了两种方法:

我无法做任何这些我做的非常简单的事情,但我认为这是个主意。

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

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

我用这个配置:

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

文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM