Restriction sur l'entité Message

La collections des messages est obtenues par la subressource GET /discussions/{id}/messages qui s'assure que nous avons bien les droits de lecture sur la Discussion grâce à CurrentUserMessageExtension

Nous allons désactiver la route GET collection de Message et la route POST qui nous permet de créer un message. Nous n'en avons pas besoin car nous utilisons la route POST discussions/{id}/messages configuré sur Discussion

Nous allons autoriser simplement les opérations item suivantes : get, put, et delete uniquement si on est l'auteur du Message

/**
 * @ApiResource(
 *     collectionOperations={},
 *     itemOperations={
 *          "get"={
 *              "security"="object.getAuthor() === user"
 *          },
 *          "put"={
 *              "security"="object.getAuthor() === user"
 *          },
 *          "delete"={
 *              "security"="object.getAuthor() === user"
 *          }
 *     },
 *     accessControl="is_granted('ROLE_USER')"
 * )
 * @ORM\Entity(repositoryClass=MessageRepository::class)
 * @ApiFilter(OrderFilter::class)
 */
class Message
prev next

Commentaires

Connectez-vous pour laisser un commentaire