I would also love to see this. We also have a similar situation.
- We have a few categories that are restricted to certain groups.
- But we also need to be able to exclude certain people from these.
Having negative category membership would work. But I think a more powerful and flexible solution would be to have user-defined automatic groups (like staff is today). These groups could support basic set operations to determine membership.
For example with this feature staff doesn’t need to be a special case but can just be admin + moderators. The fact that this auto-group was created is really a strong hint that this feature is useful and should be extended to a general feature rather than a built-in.
With this you could implement the negative exclusion by having a group HasAccess = AccessGroup - BannedGroup.
These automatic groups would also be very useful for other use cases as well. For example:
Incrementing Ranks
Right now we have a few locked forums that basically encompass smaller circles of people. Something like:
- Admin = Admin
- Moderators = Admin + Moderators
- BetaTeam = Admin + Moderators + Beta
- Trusted = Admin + Moderators + Beta + Trusted
Needing to apply the right list of groups to every category is tedious and error prone. We had many cases where one group was missing from a category that they should have had access to. Being able to define groups like this would make this much easier to manage:
- ModeratorsOrHigher = Admin + Moderators (this is built-in as
staffauto-group) - BetaOrHigher = ModeratorsOrHigher + Beta
- TrustedOrHigher = BetaOrHigher + Trusted
Common Groups
It is also common for us to have multiple categories that have the exact same set of access rules. This is basically a simpler case than above, but it would be nice to be able to just create one auto-group and use it multiple times rather than needing to repeat the whole group list and keep it in sync across many categories.