Для запуска таймера темы требуется разрешение API

Здравствуйте!

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

Конкретный эндпоинт:
POST /t/{ID}/timer

Пример payload:

status_type=close&based_on_last_post=true&duration_minutes=20160

Может кто-нибудь подсказать, куда смотреть?

Заранее большое спасибо!

Привет, Мэтью!

Не мог бы ты поделиться ошибкой, которая возникает при проверке?

Привет, @pedro

У меня всегда была ошибка 403, пока я не предоставил полный доступ на запись.

Судя по подсказкам в API-виде поддерживаемых URL, ни один из них не соответствует формату таймера (/t/{ID}/timer). Но, возможно, я просто что-то упускаю :slight_smile:

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

Спасибо!

Ошибка 403, скорее всего, связана с разрешением, необходимым для конечной точки таймера темы, а не с параметрами duration_minutes или based_on_last_post.

Я бы проверил требования к авторизации для POST /t/{id}/timer в текущем исходном коде Discourse, а не полагался бы только на разрешения, указанные в документации API. Действие с таймером может требовать тех же возможностей на уровне темы для записи/модерации, которые используются в пользовательском интерфейсе, что объясняет, почему в настоящее время работают полные права на запись.

Если для таймеров тем доступно более детальное разрешение, его должно быть возможно определить по проверке авторизации конечной точки и соответствующему методу политики/стража (policy/guardian). В противном случае ограничение ключа API только необходимым уровнем доступа к теме будет предпочтительнее предоставления более широких прав на запись.