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