가져온 사용자가 의심 대상으로 표시됨

2년 전쯤 bbPress에서 Discourse로 이전한 포럼을 운영 중인데, 몇 시간 전 마지막 업데이트 이후 갑자기 많은 사용자가 의심 대상(suspect)으로 표시되고 있다는 걸 발견했습니다. 해당 사용자들은 모두 이전 bbPress 포럼에서 가져온 계정으로, 이후 로그인한 적이 없는 사용자들입니다. 조금 조사해 본 결과, 이 변경 사항이 원인이 아닐까 싶습니다:

해당 사용자들은 웹사이트/자기소개가 설정되어 있고 게시글이 단 1개뿐(이전되어 읽은 게시글 수도 1개인 상태)이라서 의심 대상으로 표시되는 것으로 보입니다.

우리 커뮤니티의 특성상 Discourse로 전환하기 전에도 수년간 운영되어 왔기 때문에, 현재 이러한 사용자들이 검토 대기열에 쌓이고 있습니다. 실제로 의심스러운 사용자를 놓치지 않으면서도, 이러한 사용자들을 의심 대상으로 표시하지 않는 방법이 있을까요? 예를 들어, 이전 과정에서 IP 주소 필드가 비어 있거나, ‘방문일 수(Days visited)’ 필드가 0인 반면 '읽은 게시글 수(Posts read)'가 1인 것과 같은 이전의 부수적 특성을 기준으로 할 수 있을까요?

현재는 이것이 불가능합니다. 죄송합니다.

리뷰 큐가 과부하되지 않도록 2시간마다 이러한 사용자 10명만 큐에 넣습니다. 이 기능을 비활성화하려면 approve_suspect_users 설정을 꺼야 합니다.

Rails 콘솔에서 이 문제를 수정할 수 있을 것입니다. 정확히 무엇을 해야 하는지는 확실하지 않지만, 1년 이상 로그인하지 않은 사용자의 자기소개를 비우는 방법이나, 해당 사용자의 읽음 수를 100 정도로 설정하는 방법이 있을 수 있습니다.

알겠습니다. 기대했던 것과는 좀 다르지만, 다른 방법이 없으니 이걸로 해야겠네요. 이렇게 빨리 답장 주셔서 감사합니다!

내부에서 이 문제를 논의하고, 플래그가 지정된 사용자의 수를 줄이기 위해 몇 가지 변경 사항을 적용했습니다:

https://review.discourse.org/t/fix-ignore-suspect-users-that-were-migrated-or-users-who-were-created-more-than-six-months-ago-9205/9844

이제 6개월 이상 전에 생성된 사용자나 마이그레이션 결과로 생성된 사용자는 건너뛰게 됩니다.

와, 정말 감사합니다!

저는 Commits · discourse/discourse · GitHub 커밋을 실행 중인 사이트를 운영 중인데, 이 버전에서 수백 명의 가져온(imported) 사용자가 의심(suspect)으로 표시되어, 이 마이그레이션에 대해 아직 모르고 있는 관리자들에게 대량의 이메일이 발송되고 있습니다.

또한 approve suspect users 옵션이 설정되어 있지 않기 때문에, 왜 이러한 가져온 사용자가 검토 대기열(review queue)에 있는지도 이해할 수 없습니다.

의심 사용자를 대기열에 추가하는 방법은 단 하나뿐이며, 어떤 작업을 수행하기 전에 해당 설정이 활성화되어 있는지 확인합니다.

해당 설정이 비활성화되어 있는지 확인해 보셨나요? 기본값을 true로 변경했습니다. 또한, import_id라는 커스텀 필드가 있는 사용자는 건너뛰어야 합니다.

로만, 감사합니다. 제 현재 최선의 추측은 이 가져오기가 승인 가능한 의심 사용자 기능이 추가된 후, 수정 사항이 적용되기 전 버전의 Discourse에서 실행되었을 것이라는 점입니다.

만약 가져오기가 해당 버전 중 하나에서 실행된 후 수정 사항이 포함된 버전으로 복원되었다면, 해당 사용자들이 여전히 의심 사용자로 표시되고 관리자에게 "이 항목들이 X일 동안 대기열에 있습니다"라는 메시지가 표시되는 것이 합리적인가요? 그리고 만약 그렇다면, UX를 통해 또는 Rails를 사용하여(또는 단순히 모델만 알려주시면 제가 알아볼 수 있습니다) 모두를 승인 상태로 표시하는 방법을 알려주실 수 있나요?

아마도 ReviewableUser.all.destroy_all이 될까요?

개인적으로 모든 것을 파괴하는 방식은 좋아하지 않습니다. 다음 마이그레이션을 확인해 보세요:

모든 플래그된 사용자를 승인하고 싶다면 u.approved = true 조건을 제거하면 됩니다.

나는 망치 하나로도 만족하려 했는데, 당신은 메스를 제공해 주셨어요 (그 임포트가 있는 서버에 현재 콘솔 접근 권한이 없어서 제 작업이 더 힘들어졌고, 제 서버에서 새로운 임포트를 시작했습니다). 정말 감사합니다!