用户限制SonataAdminBundle中的记录

时间:2014-04-05 23:03:05

标签: php symfony sonata-admin

我正在使用Symfony2构建SaaS应用程序,并且我正在使用SonataAdminBundle来创建公共实体的CRUD(如成员类型,语言等;所有用户的通用实体,只能通过创建和修改管理员)。

我还想将SonataAdminBundle用于SaaS实体:属于用户的实体,但我不知道如何做...据我所知,我可以使用事件监听器来添加保存时实体的所有者信息,但如何限制用户可以看到的记录?

我想要的是,当用户登录时,他被重定向到仪表板。然后,当他点击“会员”实体时,他会看到所有他的成员的列表,但他不应该看到其他用户的任何成员。

使用SonataAdmin可以实现这种行为,还是我必须创建自己的CRUD函数?如果可能,您能解释(或显示任何教程/文档)有关如何创建此行为的信息吗?

1 个答案:

答案 0 :(得分:0)

您可以覆盖createQuery以更改用于列出实体的查询:https://github.com/sonata-project/SonataAdminBundle/blob/master/Admin/Admin.php#L1399-L1408

如果需要为许多管理实例执行此逻辑,也可以创建扩展。