Невозможно отредактировать тему через API, несмотря на права на запись в тему

Всем привет,

Я заметил, что, несмотря на наличие прав на запись в темы, я не могу редактировать заголовок темы.
Похоже, это работает только тогда, когда у API-ключа есть глобальная область действия.

С API-ключом, имеющим следующие области прав доступа:

Я получаю:

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"}

Такой же ответ я получаю, даже если выбрать все детализированные области прав.

Только при создании API-ключа с областью действия: Global мне удаётся редактировать заголовок темы:

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}}

Я ожидал, что права на запись в темы будут поддерживать операцию редактирования. Мне кажется, что требование глобальной области действия для этого нежелательно.

2 лайка

Вы пытаетесь создать новую тему или изменить существующую?

@pfaffman Я пытаюсь отредактировать заголовок темы через endpoint обновления темы Discourse API Docs

2 лайка

Я изучу вопрос ограничения доступа к API для этого. Скорее всего, система проверяет только POST-запрос, а не PUT-запрос для обновления.

1 лайк

Теперь существует область применения темы обновления, которую вы можете использовать для этого.

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 лайков