Impossible de modifier le sujet via l'API malgré l'accès en écriture au sujet

Salut à tous,

J’ai remarqué que, bien que j’aie l’accès “Topic Write”, je ne suis pas autorisé à modifier le titre d’un sujet.
Cela ne semble fonctionner que lorsque la clé API a une portée globale.

Avec une clé API qui a les portées de permission suivantes :

J’obtiens :

curl 'https://__NAME__.discourse.team/t/-/19.json' \
  -H "Api-Key: 3990a1..." \
  -H "Api-Username: system" \
  -H "Content-Type: application/json" \
  -X PUT \
  -d "{ \"title\": \"Title - test curl v5\" }"

{"errors":["You are not permitted to view the requested resource. The API username or key is invalid."],"error_type":"invalid_access"}

Et j’obtiens la même réponse lorsque je sélectionne toutes les scopes granulaires.

Ce n’est qu’en créant une clé API avec Scope : Global que je parviens à modifier le titre d’un sujet :

curl 'https://__NAME__.discourse.team/t/-/19.json' \
  -H "Api-Key: 0adc49d..." \
  -H "Api-Username: system" \
  -H "Content-Type: application/json" \
  -X PUT \
  -d "{ \"title\": \"Title - test curl v5\" }"

{"basic_topic":{"id":19,"title":"Title - test curl v5","fancy_title":"Title - test curl v5","slug":"title-test-curl-v5","posts_count":2}}

Je m’attendrais à ce que l’accès “Topic Write” prenne en charge l’opération d’édition. Il me semble que forcer la portée globale pour cela n’est pas souhaitable.

2 « J'aime »

Voulez-vous écrire un nouveau sujet ou modifier un sujet existant ?

@pfaffman J’essaie de modifier le titre d’un sujet via le point de terminaison de mise à jour de sujet Discourse API Docs

2 « J'aime »

Je vais examiner la portée de l’API pour cela. Je suppose qu’elle ne regarde que la requête POST et non la requête PUT pour la mise à jour.

1 « J'aime »

Il y a maintenant une portée de sujet de mise à jour que vous pouvez utiliser pour cela.

curl -i -sS -X PUT "http://localhost:4200/t/-/101.json"  \
-H "Content-Type: multipart/form-data"  \
-H "Api-Key: 54096675ed84dcf0016a3b05199cccde67e5175057e53f8e005e2625940a15e6"  \
-H "Api-Username: blake.erickson"  \
-F "title=8bd599 cae3dfdbf 7210753"

HTTP/1.1 200 OK
5 « J'aime »