我们有一个拥有许多所有者的对象,存储在ArrayCollection()中。有什么方法可以在Api Platform中实施安全策略,因此只有这些用户可以访问?到目前为止,我已经测试过了,似乎无法用访问控制表达式来做到这一点,因为它们不支持ArrayCollection,而仅支持一个简单的数组(例如'user in object.owners'不起作用)。这似乎是一个非常简单且流行的用例,您知道我们如何做到这一点吗?
谢谢。
答案似乎是风俗的选民。从API平台的文档中:
挂钩自定义访问控制逻辑的最简单和推荐的方法是编写Symfony Voter类。您的自定义选民将自动通过is_granted()函数在安全性表达式中使用。
为了将当前对象提供给您的选民,请使用表达式is_granted('READ',object)