В общем, я экспериментирую с уровнями доверия. Для уровня доверия 0 я настроил систему так, чтобы пользователь мог делать только один пост каждые 24 часа. Я также настроил Patreon так, чтобы при подписке пользователь автоматически получал уровень доверия 1, что означает отсутствие ограничений на публикацию постов. Я провел эксперимент, создал нового пользователя, который подписался на Patreon, и успешно добавил его в группу «Патроны», что дает уровень доверия 1. Однако, когда я пытаюсь сделать пост от имени этого пользователя, система всё ещё разрешает публиковать только один пост каждые 24 часа. Почему это происходит? Почему уровень доверия 1 не отменяет ограничения уровня доверия 0 для этого пользователя?
Я не думаю, что Patreon может назначать их автоматически на уровень доверия 1, так как это специальная группа, управляемая системой Discourse. Вам следует создать группу для Patreon и настроить её так, чтобы она назначала участников на уровень доверия 1. Это делается во вкладке «Членство» на странице группы:
Я только что попробовал это, и всё равно не работает.
Давайте вернёмся немного назад. Похоже, что Patreon всё-таки присвоил этому пользователю уровень доверия 1. На изображении, которое я опубликовал, видно, что уровень доверия пользователя — «1 — базовый пользователь», и он изменился с «0 — новый пользователь» сразу после регистрации через Patreon.
Но независимо от того, что сделал или не сделал Patreon, кажется, что даже если я вручную добавлю пользователя в категорию tl1, ограничение на публикацию раз в 24 часа всё равно остаётся, вместо того чтобы быть снятым.
Кроме того, обратите внимание, что я установил параметр rate limit new user create topic в значение 86400, чтобы пользователи с tl0 могли публиковать сообщения только раз в 24 часа. Не здесь ли я ошибаюсь? Не применяется ли это ограничение также и к пользователям tl1?
Именно это и является причиной проблемы. Ограничение частоты, применяемое из этой настройки, действует как для пользователей с уровнем доверия 0, так и для пользователей с уровнем доверия 1, которые находятся на сайте менее 24 часов.
Получается, вы говорите, что это проблема 24-часового лимита времени для всех уровней доверия?
Например, что, если я переведу группу Patreon на уровень доверия 2, 3 или даже 4? Обойдёт ли это ограничение скорости?
Нет, лимит применяется к пользователям уровня доверия 0, пока они находятся на этом уровне. Для пользователей уровня доверия 1 лимит действует только в течение первых 24 часов после регистрации на сайте. Для пользователей уровня доверия 2 лимит не применяется. Если вы предоставите уровень доверия 2 участникам группы «Покровители», они будут освобождены от этого лимита.
В основном для собственной справки, логика, используемая для этого, выглядит так:
def new_user?
(created_at >= 24.hours.ago || trust_level == TrustLevel[0]) &&
trust_level < TrustLevel[2] &&
!staff?
end

