「사용자 승인 필요」알림이 기존 사용자로 인해 잘못 트리거됨

지난 몇 주 동안, 일부 문제 있는(차단된) 사용자들이 offensive하거나 부적절한 사용자 이름을 사용하여 계정을 생성해 왔습니다. 이를 방지하기 위해 **“새 사용자 계정이 사이트에 접근하려면 반드시 직원의 승인이 필요합니다.”**라는 설정을 활성화했는데, 이 설정은 실제로 모든 새 계정에 대해 승인을 요구합니다.

그러나 다소 귀찮은 점은, 이 설정이 활성화되기 훨씬 이전, 즉 몇 개월 전이나 심지어 몇 년 전에 가입한 기존 사용자들에 대해서도 몇 시간마다 "승인을 기다리는 사용자"라는 알림이 온다는 것입니다.

알림을 클릭하면 다음과 같은 내용이 표시됩니다:

이 포럼에 접근하려면 승인(또는 거부)을 기다리는 새로운 사용자 가입 신청이 있습니다. 검토해 주세요.

… 하지만 "검토해 주세요"를 클릭하면 검토할 항목이 아무것도 없다는 메시지가 나옵니다:

검토할 항목이 없습니다.

admin/users/list/new 목록을 아래로 검색해 보니, 실제로 일부 사용자는 "승인되지 않음"으로 표시되어 있습니다. 이 “승인되지 않음” 사용자들 사이에는 이 설정이 켜지기 전에 생성되었다는 사실 외에는 공통점을 찾을 수 없습니다. 일부는 "주 이메일: 미인증"으로 표시되어 있고, 일부는 인증된 상태입니다.

각 사용자를 수동으로 승인해 보았지만, 수백 개의 "페이지"를 다시 스크롤해야 하며 "승인되지 않음"으로 목록을 필터링할 쉬운 방법을 찾지 못하고 있습니다.

모든 기존 사용자를 "승인됨"으로 표시할 수 있는 빠른 방법이 있을까요? 아니면 최소한 이러한 기존 사용자에 대한 알림이 전송되는 것을 막을 수는 없을까요?

2개의 좋아요

여전히 이 문제로 고생하고 계신가요?

결국 심호흡을 하고 사용자 목록 전체를 스크롤하며 (수동으로 "승인됨: 아니요"인 사용자를 찾았고), 각 사용자의 프로필에 들어가서 한 명씩 승인했습니다 :sweat:

2개의 좋아요

저도 동일한 동작을 확인했고, 이 문제가 발생하는 이유를 찾은 것 같습니다(이유는 리뷰 대기열에 해당 사용자가 표시되지 않는 것이 아니라, 아예 승인되지 않은 것입니다):

제가 코드를 이해하기로는(프로그래밍 지식은 거의 없습니다)[1] ‘must_approve_users’ 설정을 활성화하면, 해당 설정이 활성화되기 전에 생성된 대부분의 사용자는 승인되어야 합니다:

대부분의 사용자에게는 이 기능이 잘 작동했지만, 일부 사용자는 승인 상태로 표시되지 않았습니다.

Data Explorer Query
SELECT
  id as UserID, approved
FROM
  users
ORDER BY id
UserID Approved
1 true
3 true
… …
8 true
10 false
11 false
12 false
13 true

reviewables 테이블을 살펴보면, 채팅 메시지의 target ID와 일치하는 user ID를 가진 사용자들이 승인되지 않은 것을 확인할 수 있습니다.

Data Explorer Query
SELECT id, target_id, target_type
FROM reviewables
ORDER BY target_id
id target_id target_type
6 9 ChatMessage
7 10 ChatMessage
8 11 ChatMessage
9 12 ChatMessage
1 2901 Post
2 2909 Post
5 2991 Post

target type이 'user’가 아닌 'user’와 일치하는 target ID가 있을 때 사용자가 승인되지 않는 것은 버그라고 생각합니다.


  1. I have hardly any programming skills ↩︎

4개의 좋아요