Ban members from certain categories?

AI-generated summary

The discussion revolves around the inability to ban users from specific categories in Discourse, as there is no native feature to restrict access via negative permissions (e.g., ‘cannot see’). Users propose workarounds using groups: adding all users to a category-specific group and removing banned users. However, this becomes impractical with large user bases. Some suggest a plugin or feature allowing dynamic groups with set operations (e.g., AccessGroup - BannedGroup) to simplify access control. dylanh724 highlights the need for a more efficient solution, while kevincox advocates for user-defined automatic groups to manage permissions more flexibly. Moin points to the dynamic groups plugin as a potential solution. tobias eigen and Falco confirm the current group-based workaround, though it’s not ideal.

Most of our forum is pretty general. However, one part is a “forum game”. If you get caught cheating, you get banned from playing. However, we can’t actually ban them from that specific category … or can we? It’s getting hard to moderate.

EDIT: A workaround, I made a group to store the people suspended from a certain category. However, it would be great if I could natively ban people from certain categories (with the see/create/reply permission options).

「いいね!」 1

I think the only way to do this would be to create a group that includes everyone who is allowed to be in the category.

It would be nice to have a negative category permission available on category security settings, e.g. “Cannot create/reply/see”. But that does not exist now.

「いいね!」 2

This is 100% covered by groups, just remove the cheaters from the game group and they can’t access the category anymore.

「いいね!」 3

So default put everyone in a “game” group, then REMOVE them as they are suspended? Interesting

「いいね!」 5

申し訳ありません、ネクロマンシー(古いスレッドの掘り起こし)ですが、検索した際にこれがトップの結果で、他のトピック(以下にリンク)は閉じられているか、質問に関してそれほど明確ではありません。

ここで示されているロジックと類似のトピックに従うと、最善の方法は「everyone」を特定のグループに追加し、そのグループから「禁止」したいユーザーを削除することのようです。なぜなら、「グループから「表示」権限を削除するオプションがなく、追加することしかできないからです。」

これは非常に論理的ですが、たとえばインスタンスに5kユーザーがいる場合、それらすべてを手動で追加する必要がありますか?そして、新しいユーザーが参加するたびに更新し続ける必要がありますか?ユーザーをグループに追加する際に「@everyone」のような「チートコード」があるかどうかはわかりません。そうではないようです。

何かより良い方法があり、それを見逃しましたか?

ありがとうございます。

その他の関連トピック:

「いいね!」 2

わかりました。誰かを特定のカテゴリから禁止する良い方法はありません。それはあまり頻繁には起こりません。通常、誰かを禁止したい場合は、すべての場所から禁止します。レールコンソールで全員をグループに追加してから、その人物を削除することはできますが、それは面倒でしょう。

全員をグループに追加し、そのグループに含めたくないユーザーのサイト設定を持つプラグインを導入することもできます。

「いいね!」 3

私もこれをぜひ見たいです。私たちも同様の状況があります。

  1. 特定のグループに制限されているカテゴリがいくつかあります。
  2. しかし、これらのカテゴリから特定のユーザーを除外できるようにする必要もあります。

カテゴリの負のメンバーシップがあれば機能しますが、より強力で柔軟な解決策は、ユーザー定義の自動グループ(現在のスタッフのようなもの)を持つことだと思います。これらのグループは、メンバーシップを決定するために基本的な集合演算をサポートできます。

例えば、この機能があれば、スタッフは特別なケースである必要はなく、単に admin + moderators となります。この自動グループが作成されたという事実は、この機能が有用であり、組み込み機能ではなく一般的な機能として拡張されるべきであるという強力なヒントになります。

これにより、HasAccess = AccessGroup - BannedGroup のようにグループを定義することで、負の除外を実装できます。

これらの自動グループは、他のユースケースでも非常に役立ちます。例えば:

ランクのインクリメント

現在、少人数のサークルを網羅するいくつかのロックされたフォーラムがあります。例えば:

  • Admin = Admin
  • Moderators = Admin + Moderators
  • BetaTeam = Admin + Moderators + Beta
  • Trusted = Admin + Moderators + Beta + Trusted

正しいグループのリストをすべてのカテゴリに適用する必要があるのは面倒でエラーが発生しやすいです。アクセス権を持つべきカテゴリからグループが一つ欠落しているというケースが多々ありました。このようにグループを定義できると、管理がはるかに容易になります。

  • ModeratorsOrHigher = Admin + Moderators(これは staff 自動グループとして組み込まれています)
  • BetaOrHigher = ModeratorsOrHigher + Beta
  • TrustedOrHigher = BetaOrHigher + Trusted

共通グループ

また、アクセスルールがまったく同じ複数のカテゴリを持つことも一般的です。これは上記のより単純なケースですが、単一の自動グループを作成し、それを複数回使用できると便利です。そうすれば、グループリスト全体を繰り返して多くのカテゴリ間で同期を維持する必要がなくなります。

ダイナミックグループプラグインをご覧になりましたか?

「いいね!」 2