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

設定

プラグインがインストールされ有効化されると、グループ管理インターフェースに新しいタブが表示されます:

ブール式を入力または更新すると、システムは数秒かけて一致するユーザーをグループに追加します。それ以降、ユーザーのステータスが変化すると、グループのメンバーシップは自動的に更新されます。

重要:
ルールが定義されると、グループは自動としてマークされ、手動でのメンバー変更が無効になります。グループを手動管理に戻すには、式フィールドをクリアしてください。既存のメンバーはそのまま残り、手動制御が回復します。

「いいね!」 28