사용자가 TL2로 승격되지 않음

특이한 상황이 발생했습니다. 특정 사용자가 자동으로 TL2로 승격되지 않고 있습니다. TL1 → TL2를 수동으로 변경할 수 있다는 것은 알고 있지만, Discourse가 왜 이 특정 사용자를 제외하는지 원인을 파악하고 싶습니다.

Discourse에는 TL2 요건에 대한 변경 사항이 없습니다.
사용자 프로필을 확인해 보면 모든 요건을 충족하고 있습니다.
해당 사용자는 차단되거나 침묵 처리된 적이 없으며, 이 계정은 꽤 오래된 계정으로 4년 된 포럼의 초기에 생성되었습니다.
현재 2.5.0.beta6 버전을 사용 중이며, 이 "버그"는 꽤 오래전부터 존재하는 것으로 보입니다.

무언가를 놓치고 있는지 확인해 줄 페이지를 찾아보았지만, 해당 페이지는 TL3(/admin/users/ID/LOGIN/tl3_requirements)에만 제공됩니다.

제 질문은 다른 신뢰 수준(Trust Level)의 요건을 빠르게 확인할 수 있는 간단한 방법이 있는지, 그리고 문제의 원인을 확인하기 위해 어디를 살펴봐야 하는지입니다. 솔직히 TL을 수동으로 변경하는 것은 다른 사용자들에게 자신의 신뢰 수준이 올바른지에 대한 질문을 유발할 수 있으므로, 최후의 수단인 " костыль(임시 해결책)"에 불과합니다.

사용자가 TL2 자격을 갖추었는지 확인하려면 사이트 설정 페이지의 검색 상자에 'tl2 requires’를 입력하십시오. 그러면 해당 사이트의 TL2 요구 사항 목록이 표시됩니다. 이 설정을 사용자의 활동과 비교하려면 사용자 관리 페이지의 “활동” 섹션을 확인하면 됩니다.

승진이 되지 않는 사용자의 경우, 과거에 신뢰도 레벨이 잠금 처리되어 있는지 확인하는 것이 좋습니다. 신뢰도 레벨이 잠긴 사용자는 사용자 관리 페이지의 “권한” 섹션에 “신뢰도 레벨 잠금 해제” 버튼이 표시됩니다:

이미 그걸 해봤습니다. 제 머리속에는 TL3 요구 사항에 대한 그런 페이지가 있었는데, TL1과/또는 TL2에 대해서도 그런 페이지가 있으면 좋겠습니다. 그러면 관리자로서 Discourse 설정에 의존하지 않고 더 빠르게 확인할 수 있을 것 같아서요.

아, 그 정보를 추가하는 걸 깜빡했네요. 제 실수입니다. 이 사용자의 TL은 잠겨 있지 않고, 기억에 따르면 과거에도 잠긴 적이 없습니다. 따라서 그 경우는 아닙니다.

설정과 해당 활동의 스크린샷을 찍어 보낼 수 있나요?

TL2 설정 (이게 전부인가요, 아니면 놓친 게 있나요?)

사용자 활동

사용자 권한

저도 정확히 같은 문제를 겪고 있습니다. 해당 사용자는 TL3 자격 요건을 거의 충족하고 있습니다(요구사항 보고서에 따르면 TL2는 누락되어 있음). 하지만 아직 TL2로 자동 승급되지 않았습니다.

@Aylin 님, 해당 인스턴스에서 원인을 찾았나요?

제 상황도 님과 비슷합니다. 이 사용자의 신뢰 수준은 잠겨 있지 않고, 시각적으로 통계를 비교해 보면 모든 요구사항(기본값)이 충족됩니다.

다만 제 인스턴스에서는 모든 사용자가 SSO를 통해 생성됩니다. 이 사용자를 분석의 기준으로 삼고 있는데, 이 사용자는 자동 승급되어야 한다고 확신하기 때문입니다. 그런데 제 커뮤니티에는 TL2 사용자가 단 2명인 반면, TL1 사용자는 996명으로, 매우 이상적인 비율이라고 생각합니다.

정말 의심스러워 보이네요!

/logs로 가면 반복적으로 나타나는 에러가 있나요?

빠르게 회신해 주셔서 감사합니다 :slight_smile:

로그에 기록된 오류는 단 하나뿐입니다:

Log

Message

ActiveRecord::StatementInvalid (PG::SyntaxError: ERROR: syntax error in tsquery: “‘Melhorias gerais no Compara Jogos’:*A & ‘’:*B”
)
lib/freedom_patches/fast_pluck.rb:41:in select_raw' lib/freedom_patches/fast_pluck.rb:61:in pluck’
app/models/topic.rb:621:in similar_to' app/controllers/similar_topics_controller.rb:25:in index’
app/controllers/application_controller.rb:340:in block in with_resolved_locale' app/controllers/application_controller.rb:340:in with_resolved_locale’
lib/middleware/omniauth_bypass_middleware.rb:68:in call' lib/content_security_policy/middleware.rb:12:in call’
lib/middleware/anonymous_cache.rb:336:in call' config/initializers/008-rack-cors.rb:25:in call’
config/initializers/100-quiet_logger.rb:19:in call' config/initializers/100-silence_logger.rb:31:in call’
lib/middleware/enforce_hostname.rb:22:in call' lib/middleware/request_tracker.rb:176:in call’

Backtrace

rack-mini-profiler (2.0.4) lib/patches/db/pg.rb:72:in exec_params' rack-mini-profiler (2.0.4) lib/patches/db/pg.rb:72:in exec_params’
activerecord (6.0.3.2) lib/active_record/connection_adapters/postgresql_adapter.rb:675:in block (2 levels) in exec_no_cache' activesupport (6.0.3.2) lib/active_support/dependencies/interlock.rb:48:in block in permit_concurrent_loads’
activesupport (6.0.3.2) lib/active_support/concurrency/share_lock.rb:187:in yield_shares' activesupport (6.0.3.2) lib/active_support/dependencies/interlock.rb:47:in permit_concurrent_loads’
activerecord (6.0.3.2) lib/active_record/connection_adapters/postgresql_adapter.rb:674:in block in exec_no_cache' activerecord (6.0.3.2) lib/active_record/connection_adapters/abstract_adapter.rb:722:in block (2 levels) in log’
activesupport (6.0.3.2) lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in block (2 levels) in synchronize' activesupport (6.0.3.2) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in handle_interrupt’

Env

HTTP HOSTS: forum.comparajogos.com.br

이것이 관련이 있을지 모르겠습니다.

TL2(신뢰 수준 2) 사용자 2명은 저(관리자)와 다른 한 명의 사용자입니다. 이는 제가 수동으로 신뢰 수준을 변경한 적이 없었음에도 불구하고, 두 사람에게 모두 TL2 자동 승급이 작동했다는 뜻입니다.

자동 승급되지 않은 이 사용자의 가장 낮은 통계 항목은 주제 답변 수이며, 이는 3개로 요구되는 횟수와 일치합니다. 하지만 그의 마지막 답변은 9월 18일에 이루어졌습니다.

Discourse에 사용자 신뢰 수준을 변경하는 로직을 미리 실행(dry-run)하고 피드백을 제공해주는 기능이 있다면 좋겠습니다. 이렇게 하면 사용자가 해당 로직을 사용하는 작업을 직접 실행해 보며, 어떤 요구사항을 충족했거나 충족하지 못했는지 확인할 수 있습니다(요구사항을 모두 충족했음에도 버그가 있는 경우에도).

아니요. 기억이 맞다면 로그에서 흥미로운 것도 찾지 못했습니다. 결국 해당 사용자의 TL을 수동으로 변경하고 TL2를 차단하여 포럼이 TL1로 되돌리려 시도조차 하지 못하게 했습니다.

해당 계정들은 몇 년 전처럼 오래전에 생성된 것인가요, 아니면 한 달 전처럼 최근에 생성된 것인가요?
마이그레이션 문제, 초기 버전의 Discourse, 또는 부트스트랩 모드에 있는 사이트라고 의심하고 있습니다.

TL3에 대해서는 이미 유사한 기능이 존재합니다.
기억이 맞다면, 이는 스태프에게만 제공되는 기능입니다.
개인적으로 투명성을 위해 TL1~TL3 요구 사항 체크리스트는 모든 사용자에게 표시되어야 한다고 생각합니다.
이렇게 하면 스태프의 업무가 줄어들고, 나머지 요구 사항에 대해 문의하는 사용자도 줄어들 것입니다.
일반적으로 셀프 서비스는 더 잘 확장됩니다.

저도 같은 문제를 겪고 있습니다. 제 경우 TL0에서 TL1로 승급되는 상황입니다. 주로 신규 사용자에게서 나타나며, 저도 새로 만든 계정으로 직접 테스트해 보았습니다.

방금 만든 테스트 계정인데, 제가 확인해 본 대부분의 실제 계정에서도 동일한 상황이 발생합니다.

이 게시글(https://meta.discourse.org/t/when-does-user-trust-level-promotion-occur/29845)을 읽어 보니, 이전에 자동 승급 관련 문제가 있었던 것 같습니다. 이번에도 그런 상황일까요?

제 경우 설정이 약간 수정되어 있으며, 다음 게시글에 자세히 설명할 예정입니다. 제 신뢰 수준(Trust Level)은 게시물당 이미지 업로드가 1개만 가능하기 때문이죠 :grin:

– 수정: 다른 답변을 올릴 수 없어서 추가합니다:
최소 읽기 시간을 0으로 설정한 후, 새로 만든 테스트 사용자는 필요한 수의 게시물을 읽은 뒤 승급되었습니다. 그러나 기존 사용자 중에도 조건을 충족하는 사람들이 여전히 TL0에 머물러 있습니다.

TL1 설정을 약간 수정했습니다:

그리고:
image