RGJ
(Richard - Communiteq)
1
機能
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
nathank
(Nathan Kershaw)
2
素晴らしい!リチャード、素晴らしい仕事ぶりです!
これにより、Discourse のグループ管理における大きなギャップが埋まります。完全に満足しており、本格的に使用するのが楽しみです。
主に機能的なサブグループを有効にするために使用します。
「いいね!」 4
Discourse の機能に間違いなく歓迎すべき追加機能です!
「いいね!」 2
RGJ
(Richard - Communiteq)
このトピックを分割しました:
5
joo
(slower)
10
こんにちは、この非常に便利なプラグインを開発していただきありがとうございます!
現在、Discourse Dynamic Groupsを使用して、匿名ユーザー以外のすべてのユーザーを特別なグループに自動的に追加しています。私のブール式は次のとおりです。
NOT anonymous_users
期待される動作:
新しいユーザーが登録した場合(anonymous_usersグループに属していない場合)、手動で介入しなくても、このグループに自動的に追加されるはずです。
実際の動作:
新しく登録されたユーザーは、すぐにはグループに追加されません。グループ設定でブール式を手動で再保存した後でのみ追加されます。
つまり、手動で同期をトリガーしない限り、ユーザーが参加してもグループは自動的に更新されません。
「いいね!」 2
RGJ
(Richard - Communiteq)
11
なるほど… ご指摘ありがとうございます。これは想定されるべき動作であることに同意します。
技術的な観点からすると、プラグインは次の2つの異なる条件でのみグループのメンバーシップを再評価します。
- グループ設定のブール式が保存された場合
- ブール式で言及されているグループにユーザーが追加または削除された場合。
新規ユーザーが登録された場合、どちらにも該当しません。
式を trust_level_0 AND NOT anonymous_users に変更して、問題が解決するかどうかを報告してもらえますか?
「いいね!」 3
joo
(slower)
12
こんにちは、
式
trust_level_0 AND NOT anonymous_users
を使用しようとすると、次のエラーが発生します。
Unknown keyword, group or badge: 'anonymous_users'
グループ名を実際のグループに変更すると、例えば:
trust_level_0 AND NOT interns
それでも次のエラーが発生します。
Unknown keyword, group or badge: 'interns'
グループの一意の名前をグループの管理ページから直接コピーしているので、タイプミスはありません。念のため確認しました。
他に何か見落としていることや、カスタムグループが式で認識されるようにするために他に設定する必要があることはありますか?
「いいね!」 4
RGJ
(Richard - Communiteq)
13
ご報告ありがとうございます。
再現を試みているうちに、2つのバグを特定し、そのうちの1つがお客様に影響を与えた可能性があります。
プラグインを最新バージョン59640f1にアップデートして、問題が解決するかどうか確認してください。
プラグインはまだグループの名前変更にうまく対応できていません。グループの名前を変更する場合は、それに依存するすべてのグループからルールを保存する必要があります(ブール式の後にスペースを入力し、削除して[保存]ボタンを有効にします)。これについては、今後のバージョンで対応します。
「いいね!」 3
Heliosurge
(Dan DeMontmorency)
14
これは、あなたのCategory restrictorプラグインを使用していますか、それともそれとは独立して機能しますか?
ギャップを埋める素晴らしいプラグインです。
joo
(slower)
16
こんにちは。
Dynamic Groups プラグインを使用しており、基準を以下のように設定しました。
trust_level_0 AND NOT anon_group
しかし、anon_group に属していない trust_level_1 のユーザーもこのダイナミックグループに追加されていることに気づきました。
これは予期された動作なのか、それともバグなのかご確認いただけますでしょうか。
Moin
17
信頼レベル1のユーザーは信頼レベル0グループのメンバーでもあります。したがって、この動作は予期されたものです。TL0ユーザーのみを取得するには、信頼レベル1グループを除外できます。最初の投稿の例と同様に
「いいね!」 2
nathank
(Nathan Kershaw)
19
このプラグインが本当に大好きです
!いくつかのユースケースで非常に役立っています。Communiteq チームによる共有とメンテナンスに改めて称賛を送ります!
UX に関する提案 - Membership タブ全体を非表示にするのではなく、キーフィールドだけを非表示にしたほうが良いのではないでしょうか?
グループページの Membership タブが非表示になっていることに気づきました。具体的にはこちらです:
その理由も理解できますが、Default title(デフォルトタイトル)、Flair(装飾)、Effect(効果)を変更したい場合に問題が発生します。
回避策として、ブラウザコンソールでタブを表示させるか、 Dynamic Groups タブの式を削除してリフレッシュし、変更を加えた後、式を再度貼り付けてリフレッシュするという方法があります。
しかし、役に立たないフィールドだけを非表示にして、タブ全体を隠すのではなく、以下のようにするほうが良いのではないかと考えます:
「いいね!」 1
RGJ
(Richard - Communiteq)
20
ご提案には賛成ですが…
これは中核機能です。
動的グループが「自動」としてマークされると、メンバーシップタブは表示されなくなります。
それは機能しません。Discourse コア自体がタブを出力しないためです。隠されているのではなく、単に存在しないのです。
「いいね!」 1
nathank
(Nathan Kershaw)
21
ああ、投稿してからあなたの返信までの間にそのことを突き止めたんです!それがコア機能にフックするとは気づいていませんでした。それもとても巧みに実装されていますね。
私の誤った提案は取り消しました。
では、私が挙げた他の回避策で問題ないようですね。
「いいね!」 1
RGJ
(Richard - Communiteq)
22
僕もそれには気づいていませんでした!
今後1ヶ月ほどで全プラグインのメンテナンスを実施する予定です。もしかすると「自動」フラグを見直す必要があるかもしれません。記憶が正しければ、これはメンバーの追加・削除機能を無効にするための簡易的な方法に過ぎなかったはずです。他の問題はすべて、望まない副作用だと思われます。
「いいね!」 4
nathank
(Nathan Kershaw)
24
現在、このプラグインにはいくつかの非推奨通知があります:


「いいね!」 3