Старайтесь не редактировать безопасность api-платформы другого пользователя - PullRequest
0 голосов
/ 21 апреля 2020

Я хочу эту сущность User, которую может редактировать только пользователь-владелец. Я пробовал security: "object == user", но не работает

Документация по API-платформе описывает безопасность операций только с объектом, связанным с пользователем, но не с самим пользователем https://api-platform.com/docs/core/security/

# api/config/api_platform/resources.yaml
App\Entity\Book:
    attributes:
        security: 'is_granted("ROLE_USER")'
    collectionOperations:
        get: ~
        post:
            security: 'is_granted("ROLE_ADMIN")'
    itemOperations:
        get: ~
        put:
            security: 'is_granted("ROLE_ADMIN") or object.owner == user'

Моя текущая сущность показана ниже

# config/api_platform/resources.yaml
App\Entity\User:
    attributes:
        normalization_context:
            groups: ['user-read']
        denormalization_context:
            groups: ['user-write']
    itemOperations:
        get: ~
        put:
            security: "object == user"
...