Is there a way, perhaps witha plugin, to restrict posters to a public topic to a defined list? Ideally this should be a topic specific list of users.
Not sure exactly what you are asking for, but category
security settings is the place to look to set up who is allowed to create topics, reply to topics or even see topics within each category. So I guess you’d want to put the topic you want to restrict access to within a category set up with the permissions you desire. E.g.
everyone can see and reply, but only
staff can create.
That is at a category level. What about at a topic level?
Convert the topic to a PM if topic-level restrictions are needed. Topics do not support restricted access except that provided at the category level.
Or just create a category for the one topic if you need it to be public but restrict who is allowed to post to it. You could then later close the topic and move it to a different category and delete the special category with restricted access.
What’s the reason for not restricting users/groups to a topic? We have a use case where we want to create many threads where a group of users would have access to some specific set of threads. Say Group1 can access Thread 1, 4, 7, 10. Group2 can access Thread 2, 5, 8 … and so on. There could be many such threads here and many such groups. It doesn’t make much sense to create all of these as categories, although that looks like the only option we have right now.
Can someone the design restriction to not extend the concept of permissions to Topics?
Topics with individual permissions already exist within Discourse, they’re called Personal Messages.
Topics within categories already inherit permissions at the category level, it would be incredibly confusing and unintuitive if you could interact with one topic differently to another.
The permissions model is simple and intuitive by-design, your use case is already supported by PMs.
Doesn’t personal message mean that it would be only visible to one person? The intention here is to make one thread available to a group of users. Does PM support that?
Yes, PMs can be sent between any combination of users and groups.
But they can’t be public. It would be really valuable to have functionality like a PM, where posters/groups could be added to contribute, but everyone could see.
Thinking about this more, it would really be useful. One way to implement it might be 1) making specific PMs public in a category with a setting, or perhaps 2) giving topic level permission for inducían users/groups to post on a closed topic.
Of those #2 seems most direct a solution. Ideally people might be able to request permission to post.
Could this feature be added to the roadmap?
No, it would require almost a complete rewrite of Discourse from the ground up. We don’t do, and have never done, per topic permissions. Other than PMs.
You can of course convert topics to PMs and vice versa.