コンテキストは次のとおりです。
Symfony 3.4 と api-platform を使用しています。
私は2つのクラスを持っています:
- サプライヤー
- 製品
仕入先の全商品を一覧表示したい
Supplier エンティティでは、通常の CRUD メソッドに access_control を実装しました。
また、正常に機能しないサブリソースを通るルートもあります。
* collectionOperations={
* "get"={
* "access_control"="is_granted('LIST', object)",
* "normalization_context"={"groups"={"supplier.liste"}},
* },
* },
* itemOperations={
* "get"={
* "method"="GET",
* "access_control"="is_granted('VIEW', object)",
* },
* },
* subresourceOperations={
* "supplier_product_get"={
* "path"="/supplier/{id}/products",
* "method"= "GET",
* "access_control"="is_granted('LIST', object)",
* },
* }
問題は、サブリソースのアクセス制御が機能しないことです。そこでは、このリソースに対する許可について投票者をチェックすることになっていますが、投票者をチェックせず、403 を返す必要があるときに HTTP 応答コード 200 を返します。
access_control の代わりにセキュリティを使用しているドキュメントを確認しました。
* subresourceOperations={
* "supplier_product_get"={
* "path"="/supplier/{id}/products",
* "method"= "GET",
* "security"="is_granted('LIST', object)",
* },
* }
そして、それも機能しません。
有権者が呼び出されない理由についての手がかりやヒントを誰かが持っていますか?