If(you are already in Group A)
You can freely join this group
Else
You must send a membership request
Use case is that we have external contractors. We want to give them access to Discourse. Currently they can freely join the same groups that our staff can join. This creates a confidentiality issue.
If we make joining the group based on membership requests, then I will constantly get membership requests which I will automatically accept anyway. Further, I will just have a habit of accepting them by default and no doubt accept a contractor request by accident anyway, completely defeating the purpose.
Our staff should be able to just join the groups they are interest in, but the contractors should only be allowed to join if they are permitted to do so.
Groups are collections of users that can be used to control access to categories. Could you just give your staff access to all the categories without requiring them to join a group? (add the employees group to all of those categories). Or is there something else you’re doing with the group?
I doubt that this is going to make it into core soon, but a plugin could do it.
Apologies if these suggestions are what you know already and what you really want is the feature.
@Tris20 I’m a bit lost, but isn’t this a normal function where you can allow access to some categories depending a group, like contractor group, or what are you trying to achieve in the first place?
If a contractor is member on that spesific group, why they must be in another group more to get access to another group more?
That means HR, Finance, Legal will see the categories above,
So if we give all staff access to all categories we also open up confidentiality issues. By creating a group for each category, we know who has access to the information.
There’s also going to be a significant number of categories. It’s far easier for us to have a blanket approach to categories: a group of members, and a group of moderators per Category. The Category is only visible if you are a member of the category group. e.g you only see Docker if you joined the Docker Group.
So basically they just join/leave the group if they want to see the respective category. Hence, a blanket “employees” group wouldn’t really achieve this goal(although we have one anyway for general use)
If I have three contractors, one for each Category:
Docker
Grafana
Linux
They cannot be permitted to see the categories they are not contracted for.
Does this mean I make “Docker-Contractors” “Grafana-Contractors” etc Groups? Can’t do that for all Categories.
Most effective way to manage this is to have a Contractors group utilising the email address based autoassign e.g. @external.com. Then I can restrict the access of those users specifically.
However, every member of the contractors group will be contracted for different tools, and will need access to different areas. Consequently, I either allow the contractors group access to all categories(defeating the purpose) or I make a contractor group for each category(no no no) or… we allow users of an existing group(all-employees) to freely join the group.
In general, having contractors means I cannot use the “freely join” functionality at all.
Two similar feature requests which would be resolved by this suggestion.
The above proposal would allow all members to freely join groups(and associated categories) if they are in a “well behaved users” Group(or perhaps even above a trust level!). Those below the trust level or not in the “well behaved users” Group must join by request