Ограничить режим рассылки для группы пользователей

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

у нас есть сообщество пользователей, которое существует уже довольно давно и активно использует наш форум в режиме рассылки, к которому они привыкли. Мы хотим сохранить эту группу, так как она вносит значительный вклад в обсуждение.

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

Существует ли способ реализовать это?

Спасибо,
Уве

Вы можете отключить это в настройках вашего сайта, используя

disable mailing list mode

Кажется, что это всё ещё позволит существующим пользователям, у которых эта функция включена, продолжать её использовать? В описании сказано:

Запретить пользователям включать режим рассылки.

Но я спрошу у @sam — это отключит режим рассылки для всех или просто скроет настройку?

Думаю, вы могли бы скрыть настройку, связанную с CSS. Также вы можете не скрывать её для тех, кто хочет иметь возможность её использовать (или отключить!).

Полагаю, что отключение настройки сайта полностью отключит эту функцию, хотя я не проверял код (и не пробовал это делать), чтобы быть уверенным.

Это просто скрывает настройку. Возможный недостаток заключается в том, что это не позволяет пользователям, ранее включившим режим рассылки, отключить его через интерфейс.

Спасибо за ваши исследования!
Так что, чтобы быть уверенным:
Если я отключу режим рассылки, старые пользователи останутся в режиме рассылки. Если кто-то из них захочет перейти на стандартный режим получения сводок, им нужно будет связаться со мной?

Как мне тогда изменить их настройки? Я вижу только те же настройки, что и у них. Получается, что для каждого запроса мне понадобится CLI?

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

Другой подход — использовать консоль Rails. Например, если вы уже знаете ID пользователя:

uo = UserOption.find_by(user_id: <user_id>)

uo.update(mailing_list_mode: false)

Поскольку теперь Discourse по умолчанию устанавливает значение настройки disable mailing list mode в true, я ещё раз изучил этот вопрос. Когда disable mailing list mode установлено в true, из Discourse не отправляются никакие письма в режиме рассылки. Это означает, что настройка полностью отключает режим рассылки для сайта. Однако варианты выбора пользователя не меняются: если вы установите disable mailing list mode в false после того, как ранее установили его в true, пользователи, которые ранее выбрали опцию режима рассылки, снова начнут получать письма в этом режиме. На мой взгляд, это правильное поведение.