无法使子资源上的access_control与Api平台一起使用

时间:2019-04-28 11:27:30

标签: api-platform.com

我无法使用Api Platform保护子资源。 我有一个实体产品和另一个实体商店。 Store通过OneToMany关系链接到Store。

我无法保护路线/ stores / {id} / products

我尝试了

 *     collectionOperations={
 *          "api_stores_products_get_subresource"={
 *              "method"="GET",
 *              "path"="/stores/{id}/products",
 *              "access_control"="object == user.store",
 *              "access_control_message"="Only owner can get subresource"
 *          }
 *     },

但是,即使我是所有者,我也无法访问任何商店的产品

所以我尝试了

 *    subresourceOperations={
 *          "api_stores_products_get_subresource"={
 *              "method"="GET",
 *              "path"="/stores/{id}/products",
 *              "access_control"="object == user.store",
 *              "access_control_message"="Only owner can get subresource"
 *          }
 *     }

但是即使我不是所有者,我也可以访问所有商店的产品

我确实在商店实体上实现了此代码

所以我也尝试过

*     collectionOperations={
 *          "api_stores_products_get_subresource"={
 *              "method"="GET",
 *              "path"="/stores/{id}/products",
 *              "access_control"="object.owner == user",
 *              "access_control_message"="Only owner can get subresource"
 *          }
 *     },

但是我有这个错误,我认为这是合乎逻辑的

"hydra:title": "An error occurred",
    "hydra:description": "Unable to get a property on a non-object.",

如果您有任何想法:) 非常感谢您的宝贵时间。

0 个答案:

没有答案