Private Groups

That’s all supported by groups within discourse.

Categories can be hidden and protected with access restricted to particular groups.

Groups can be hidden from non-members.