Discourse 동적 그룹

:information_source: 요약 그룹 멤버십을 자동으로 관리
:hammer_and_wrench: 레포지토리 링크 https://github.com/communiteq/discourse-dynamic-groups
:open_book: 설치 가이드 Discourse에서 플러그인 설치하는 방법

기능

Discourse 커뮤니티는 배지 소유 여부나 기존 그룹 멤버십과 같은 조건에 기반하여 그룹 멤버십을 자동화할 필요가 있습니다.

일반적인 사용 사례에는 다음이 포함됩니다:

  • ‘구독자(subscribers)’ 그룹에 속하지 않은 사용자

  • #marketplace에서 게시가 금지된 사용자가 아닌 사용자

  • TL0 또는 TL1이지만 TL2는 아닌 사용자

  • 신규 사용자 튜토리얼을 완료했거나 1년 이상 회원인 사용자

  • client_1, client_2 또는 client_3에 속해 있으면서 인턴이 아닌 사용자

이전에는 이러한 문제를 해결하기 위해 그룹을 주기적으로 동기화하는 사용자 정의 스크립트가 필요했습니다. Dynamic Groups 플러그인은 이러한 필요성을 제거합니다.

이 플러그인은 그룹 설정에 부울 표현식 필드를 도입하여 관리자가 그룹 멤버십을 동적으로 결정하는 규칙을 정의할 수 있게 합니다.

예시:

  • ‘구독자(subscribers)’ 그룹에 속하지 않은 사용자
    trust_level_0 AND NOT subscribers

  • #marketplace에서 게시가 금지된 사용자가 아닌 사용자
    trust_level_2 AND NOT banned_users

  • TL0 또는 TL1이지만 TL2는 아닌 사용자
    trust_level_0 AND NOT trust_level_2

  • 신규 사용자 튜토리얼을 완료했거나 1년 이상 회원인 사용자
    badge:certified OR badge:anniversary

  • client 1, 2 또는 3에 속해 있으면서 인턴이 아닌 사용자
    (client_1 OR client_2 OR client_3) AND NOT interns

구성

플러그인이 설치되고 활성화되면 그룹 관리 인터페이스에 새로운 탭이 나타납니다:

부울 표현식을 입력하거나 업데이트하면, 시스템이 몇 초간 해당 조건에 맞는 사용자로 그룹을 채우는 데 시간이 걸립니다. 그 시점부터는 사용자 상태가 변경될 때마다 그룹 멤버십이 자동으로 업데이트됩니다.

중요:
규칙이 정의되면 그룹은 **자동(automatic)**으로 표시되며 수동 멤버 변경이 비활성화됩니다. 그룹을 수동 관리로 되돌리려면 단순히 표현식 필드를 지우면 됩니다. 기존 멤버는 유지되며 수동 제어 권한을 다시 얻게 됩니다.

28개의 좋아요