마이그레이션 후 "승인 대기 사용자" 메시지

약 8개월 전, Yahoo에서 .mbox 파일을 다운로드하여 Discourse로 가져오는 방식으로 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: