私もこれをぜひ見たいです。私たちも同様の状況があります。
- 特定のグループに制限されているカテゴリがいくつかあります。
- しかし、これらのカテゴリから特定のユーザーを除外できるようにする必要もあります。
カテゴリの負のメンバーシップがあれば機能しますが、より強力で柔軟な解決策は、ユーザー定義の自動グループ(現在のスタッフのようなもの)を持つことだと思います。これらのグループは、メンバーシップを決定するために基本的な集合演算をサポートできます。
例えば、この機能があれば、スタッフは特別なケースである必要はなく、単に 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
共通グループ
また、アクセスルールがまったく同じ複数のカテゴリを持つことも一般的です。これは上記のより単純なケースですが、単一の自動グループを作成し、それを複数回使用できると便利です。そうすれば、グループリスト全体を繰り返して多くのカテゴリ間で同期を維持する必要がなくなります。