| 요약 | 그룹 멤버십을 자동으로 관리 | |
| 레포지토리 링크 | https://github.com/communiteq/discourse-dynamic-groups | |
| 설치 가이드 | 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)**으로 표시되며 수동 멤버 변경이 비활성화됩니다. 그룹을 수동 관리로 되돌리려면 단순히 표현식 필드를 지우면 됩니다. 기존 멤버는 유지되며 수동 제어 권한을 다시 얻게 됩니다.
