0

对不起我的英语不好...

在我的项目中,我将 ACL 与 SonataAdminBundle 一起使用,但我不明白他们为什么这样做,您需要在数据库中创建一条记录,即使我只想使用没有对象范围的类范围。

此外,例如,当您创建评论时,SonataAdminBundle 会自动在 acl_object_identities 中创建一个条目,它会使该操作数据库变得混乱。

我创建了一个角色,该角色有权完全访问表中的所有记录,而不管记录是谁创建的,但 SonataAdminBundle 只显示它们并禁止编辑。SonataAdminBundle 的文档如下:

因为检查了对象 ACL 权限,所以必须已创建对象的 ACL,否则 AclVoter 将拒绝非超级管理员用户尝试编辑另一个非超级管理员用户的 EDIT 访问权限。这是在使用 Admin 创建对象时自动完成的。如果对象也在 Admin 之外创建,请查看 AclSecurityHandler 中的 createSecurityObject 方法。

但为什么?如何避免这种情况?

不想写钩子。

提前感谢您对此的任何评论和帮助。

4

1 回答 1

0

您可以使用生成对象 ACLphp app/console sonata:admin:generate-object-acl

于 2013-06-27T20:13:14.207 回答