Безопасность с методом не работает
Я пытаюсь настроить безопасность своих сущностей в API Platform и обнаружил, что могу вызывать метод вместо примера свойств, используемого в документах (это можно найти в каком-то примере в Интернете):
* attributes={"access_control"="is_granted('ROLE_USER') and object.belongsTo(user)"},
Это необходимо в моем случае, так как я держу данные учетной записи пользователя отдельно от данных профиля пользователя, а рассматриваемая сущность связана с профилем, а не с сущностью пользователя.
Это работает как талисман на отдельном получателе (/api/data/{id}), но завершается с ошибкой сервера 500 в списке (/ api / data):
"гидра: описание": "Невозможно вызвать метод \" относится к \ "объекта \"ApiPlatform\Core\Bridge\Doctrine\Orm\Paginator\".",
Хотите знать, что идет не так и как это исправить.
метод ownTo() довольно прост:
public function belongsTo(User $user) {
return $user == $this->owner->user;
}