Сообщения «Пользователи ожидают одобрения» после миграции

Около 8 месяцев назад я перенёс группу Yahoo на новую установку Discourse, загрузив файлы .mbox из Yahoo и импортировав их в Discourse. Импорт прошёл успешно, и хотя сообщество не особенно активно, пользователям, похоже, нравится новый формат. Однако старая группа существовала почти 20 лет, что порождает свои проблемы.

У многих участников группы за всё время её существования адреса электронной почты больше недействительны (а в некоторых случаях участники уже скончались). Возможно, именно поэтому я периодически получаю системное сообщение о том, что около 385 пользователей ожидают одобрения, как на этом скриншоте:


Но когда я нажимаю на ссылку «Пожалуйста, проверьте их», вместо этого я вижу следующее:

Это вряд ли серьёзная проблема, но немного раздражает — есть ли способ это исправить?

@tshenry есть способ убрать их через командную строку?

Здесь есть несколько вариантов. Самый простой — установить следующую настройку сайта в значение -1:

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

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

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

Отлично, вот что вы можете сделать для решения вашей конкретной задачи:

  1. Одобрите или отклоните всех ожидающих пользователей, которые сейчас видны в вашей очереди на проверку.

  2. Создайте резервную копию вашего сайта.

  3. Войдите в консоль Rails вашего сайта.

    cd /var/discourse
    ./launcher enter app
    rails c
    
  4. Получите список пользователей, находящихся в подвешенном состоянии.

    pending_users = AdminUserIndexQuery.new(query: 'pending', stats: false).find_users_query
    
  5. Выполните следующий код, чтобы одобрить их.

    pending_users.each do |u|
      u.approved = true
      u.approved_by = Discourse.system_user
      u.approved_at = Time.zone.now
      u.save!
    end
    

Это должно решить проблему!

Кажется, действительно помогло, спасибо. Если нет, я скоро это пойму.

Теперь прошло уже три недели (извините), и я больше не видел этого сообщения. Да, это исправление сработало.

Привет!
Какая команда нужна для массового отклонения пользователей?
Я импортировал данные из vBulletin, и у меня около 100 ожидающих пользователей — все это спам-аккаунты. :slight_smile: