모든 사용자에게 기본 그룹 태그 부여 (예: 사용자)

여러분 안녕하세요,

최근 Discourse에 깊이 빠져 있습니다 (Vultr에서 하나 운영 중이죠 :slight_smile: ). 그룹 태그에 대한 제 질문 Group tagging notification (그룹을 태그할 수 있도록 허용) 이후,

모든 사용자에게 기본적으로 그룹 태그를 부여할 수 있는지 궁금해졌습니다 (수작업 없이요 ;)). 그러면 모든 사용자가 모든 사용자를 태그할 수 있게 됩니다.

이렇게 하면 관리자가 특정 게시물에 대해 사용자가 알림을 받도록 강제할 수 있습니다 (물론 이는 내부 사용에만 유용합니다 :slight_smile: ).

사용자를 태그로 표시하는 건가요? 태그는 그렇게 작동하지 않거나, 그렇게 사용하도록 설계되지 않았습니다. 그렇게 하면 태그가 엄청나게 많아질 거예요. 말씀하시는 게 멘션(mentions)을 의미하는 건가요?

그리고 태그나 멘션으로 모든 사용자를 깨우려는 건 사실상 불가능합니다.

@trust_level_0를 언급하려는 것이었나요?

AFAIK로 모든 사람에게 도달하지는 못합니다. 다만 @here와 함께 사용할 수는 있습니다. 그룹 멘션 시 최대 알림 사용자 수라는 설정이 있지만, 이 값을 무한대나 터무니없이 큰 값으로 설정할 수 있는지는 잘 모르겠습니다.

예를 들어 @all을 언급할 수 있으면 좋겠습니다. 그러면 플랫폼의 모든 사용자에게 도달하게 되죠. @trust_level_0 그룹을 @all로 이름 변경한 후 메시지에서 태그를 붙이면, 모든 사용자에게 알림이 전송되나요?

사용자의 신뢰 수준이 높아지면, 해당 사용자는 @trust_level_0 그룹에서 자동으로 분리되나요?

아니요. 모든 사용자가 해당 그룹에 있습니다.

TL1이 더 나은 선택이라는 말은, 즉 TL0보다 더 나은 모든 사용자를 의미하는 것이므로 다른 이야기입니다.

2000000000까지 증가시킬 수 있습니다

유일한 문제는 trust_level_group_0 그룹을 이름 변경할 수 없다는 것입니다. https://meta.discourse.org/t/is-it-possible-to-rename-the-trust-level-0-group-to-something-else/96639.

하지만 discourse에 훅(hook)을 설정하여 특정 엔드포인트를 호출하고, 그 엔드포인트가 discourse API를 통해 가입 시 사용자를 그룹에 추가하도록 지시하는 방식은 사용할 수 있습니다.

보기는 좋지 않지만 작동은 합니다 :okay:

아니요. 그룹을 만들고 사람들을 추가하세요. 그러면 그들은 @group을 언급할 수 있습니다.

기본 그룹의 이름을 변경하지 마세요. 혼란을 야기할 수 있습니다(변경이 가능하다면).

admin/customize/site_texts에서 기본 그룹 이름을 변경할 수 있습니다. :+1: 신뢰 수준 0을 변경하려면 groups.default_names.trust_level_0을 사용하세요.

기존 사용자 또는 그룹과 동일한 이름을 사용할 수 없으며, 그렇지 않으면 이름 변경이 적용되지 않습니다. 변경 사항은 백그라운드 작업의 일부로 처리되므로, 해당 작업이 실행될 때 업데이트됩니다. /sidekiq/scheduler에서 Jobs::EnsureDbConsistency를 트리거하여 처리를 빠르게 진행할 수 있습니다.

업데이트가 왜 이렇게 오래 걸렸는지 궁금했어요 (테스트를 하고 있었거든요). 그런데 그룹 이름을 변경하면 @새그룹이름으로 언급할 수 있을까요?

admin/customize/site_texts에서 이름을 변경하면 메뉴 드롭다운과 @멘션 등에도 반영되어야 합니다. :+1:

실제로 @멘션은 테스트해 보지 않은 것 같습니다. 확인해 보겠습니다…

확인해 보니 반영됩니다. :+1:

이름을 바꿀 수는 있습니다. 다만, Discourse에 익숙한 사람들이 나중에 도움을 주려 할 때 혼란을 줄 수 있습니다. 해결하는 것보다 더 많은 문제를 일으킬 가능성이 높지만, 저는 그 커뮤니티를 잘 모릅니다. 여기에서 도움을 준 몇백 명 정도를 알고 있을 뿐이니까요. 제 추측이 틀릴 수도 있습니다.

이렇게 묻는 이유는, 예를 들어 Google의 인증 레이어(OAuth2)를 사용하는 경우 매번 수동으로 특정 그룹에 멤버를 할당할 수 없기 때문입니다. 따라서 다음 중 하나를 선택해야 합니다:

  • 기본 그룹 이름을 변경해야 하는 경우
  • 해당 그룹에 사용자를 추가하는 콜백을 생성하는 (PHP) 스크립트로 웹훅을 트리거하는 경우

그렇게 혼란스럽진 않을 것 같은데요? 관련이 있으면 이름이 변경되었음을 언급해 주면 꽤나 직관적인 것 같습니다. 제가 아는 몇몇 분들이 그렇게 하신 적이 있는데, 문제가 있었다는 보고는 없었던 것 같습니다. (그룹/사용자명 충돌로 인해 이름 변경이 조용히 실패하는 경우는 제외하고요.)

그 외 피해야 할 이유가 더 있을까요?

신뢰 수준(trust level)은 수많은 곳에서 사용됩니다. 만약 trust_level_0이 "not_trust_level"이라고 불린다면, 신뢰 수준 관련 문제를 디버깅하기 시작했을 때 혼란스러울 가능성이 높습니다. "잠깐. trust_level_0이라는 건 없는데. 이게 어떻게 작동하는 거지!?"라고 생각할 수 있습니다.

신뢰 수준에 사용자 지정 이름을 사용해 왔는데, 앞서 언급한 기존 사용자 이름과 새로운 그룹 이름 간의 충돌(해결 방법: Trust_level default name?)을 제외하고는 문제가 없었습니다. 관리 메뉴의 사용자 지정 텍스트 섹션의 전체적인 목적이 UI에서 해당 텍스트가 사용되는 수많은 위치를 변경하려면 단 한 곳만 수정하면 되도록 하기 위한 것 아닌가요?

제 경험에 비추어 볼 때, 신뢰 수준 이름을 변경하는 것은 포럼에 더 일관된 테마를 부여하는 쉬운 방법일 뿐만 아니라 훨씬 더 재미있습니다.

Trainer > Ace > Leader는 trust_level_1 > trust_level_2 > trust_level_3보다 제 커뮤니티에게 훨씬 더 의미 있고 브랜드에 부합하며 재미있습니다.

잘 작동하고 계시다니 다행입니다! 아마 제가 너무 경직되어 있는 것 같네요.

제가 하고 싶은 말은 신뢰 수준에 대해 언급하는 커스터마이즈할 수 있는 문자열이 많다는 것이었습니다. 하지만 문제가 없으셨다면 그것은 실제 데이터이고, 제가 기억하는 한 그것이 실제로 문제가 되는 구체적인 사례는 없으므로 제 말을 무시하셔도 괜찮을 것입니다.

경고: TL0에는 스테이지 사용자들이 포함되어 있습니다. 스테이지 사용자들을 사용하고 해당 그룹에 메시지를 보내면, 스테이지 상태의 사용자에게 이메일이 전송됩니다.

이 점이 몇몇 분들에게는 놀라웠을 것입니다. :slight_smile:

단계별 사용자(staged users)라는 게 무슨 뜻인가요?