ターゲットグループのユーザーのうち、トラストレベル3を持つユーザーを含む新しいグループを作成することが、これを達成する唯一の方法だと考えられます。Discourseには、カテゴリセキュリティ権限で使用できるANDルールがありません。同様の質問が、1つ以上のグループのメンバーを除外するカテゴリルールを作成することについて、数回ありました。
サイトでData Explorerプラグインが利用可能な場合は、トラストレベル3を持つターゲットグループの全ユーザーのリストを返すData Explorerクエリを使用できます。大量のユーザーを扱っていない場合は、クエリから返されたユーザー名のリストをグループの「ユーザーの追加」フォームに直接コピー/貼り付けできるはずです。Discourseは、既にグループに存在するユーザー名をそのフォームに追加できるようですので、クエリを定期的に実行すれば、返されたユーザー名をグループの「ユーザーの追加」フォームにコピーし続けることができるはずです。なお、フォームに貼り付けることができるユーザー名の最大数については、よくわかりません。80人のユーザーでテストしたところ、問題なく動作しました。また、ユーザー名のリストを完全に重複して貼り付けようとすると、Discourseはエラーを返すようです。ただし、そのエラーは無視できます。
以下は、私がテストしたクエリです。クエリを実行する前に、グループ名(例:「year_2」)を指定する必要があります。
--[params]
-- string :group_name
SELECT u.username
FROM group_users gu
JOIN groups g ON g.id = gu.group_id
JOIN users u ON u.id = gu.user_id
WHERE g.name = :group_name
AND u.trust_level = 3
Data ExplorerクエリをAPI経由で実行し、APIリクエストの結果を使用してグループを更新することで、上記のプロセスを自動化することが可能です。詳細はこちらをご覧ください:Discourse APIでData Explorerクエリを実行する。その後、API経由でグループメンバーを更新する必要があります。
Data Explorerクエリの結果に対して、直接いくつかの種類のアクションを実行できると興味深いでしょう。例えば、ユーザー名のリストを返すクエリで、コピー/貼り付けの手順を踏むことなく、すべてのユーザーをグループに追加するなどです。