Как отключить почту для пользователей в стадии подготовки?

Продолжение обсуждения из темы Описание различных состояний пользователей в Discourse (Администратор / Модератор / Сотрудник / Разработчик / Другое):

У меня есть форум, в который импортированы данные из Google Groups. По определённым причинам этот форум должен представлять собой статичный архив группы Google. Сама группа Google продолжит функционировать независимо, а форум будет просто отображать её сообщения как статичные архивные данные. В настоящее время я делаю это, периодически запуская скрипт импорта из Google, но думаю, что в будущем вместо этого настрою входящую почту и подпишу категорию на рассылку группы Google.

Я отключил параметр enabled staged users. Все пользователи отображаются как active=false и staged=true.

Если кто-то отвечает на сообщение, пользователь получает письмо.

Если кто-то отправляет ему личное сообщение (ЛС), пользователь получает письмо.

Если я изменю статус пользователя staged на false, он больше не будет получать ЛС, но всё ещё будет получать уведомления об ответах на свои сообщения. Это кажется приемлемым поведением, и именно об этом спрашивал кто-то другой сегодня, однако данная организация считает, что у неё нет права отправлять электронные письма пользователям Google Groups, которые не создали учётную запись на форуме.

Возможно, я могу модифицировать скрипт импорта и/или создать плагин, который будет автоматически устанавливать staged=false для всех пользователей с active=false? Или, возможно, я должен настроить категорию архива так, чтобы её нельзя было отслеживать (в плагине, я полагаю)?

Для справки, вот как должны обрабатываться staged-пользователи:

Продолжаем обсуждение из темы Как отключить почту для временных пользователей?:

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

def no_mail_for_staged_users
  staged=User.where(staged: true)
  staged.all.each do |user|
    o=UserOption.find_by(user_id: user.id)
    o.email_level = 2
    o.email_messages_level = 2
    o.email_digests = false
    o.save
  end
end

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

Если у кого-то есть лучшие идеи, буду рад услышать.

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

Это было бы неплохо. Я проверю в понедельник и посмотрю, как отменить изменения в настройках пользователя.

Есть ли для этого плагин?

Это очень старая тема, и то, что я делал при написании этого сообщения, больше невозможно.

Похоже, я добавил эту функцию в скрипт, который импортировал пользователей. Если вам по какой-то причине нужно, чтобы это происходило, скорее всего, вам понадобится плагин для этого. Опишите, что именно происходит и создает отложенных пользователей, которые не должны получать письма; вам, вероятно, потребуется обновить то, что это делает, чтобы запускать скрипт, подобный тому, который я включил. Если вам нужен кастомный плагин для этого, вы можете написать в Marketplace или связаться со мной напрямую.