Private discussions and inviting users to them without involving admin
I’m trying to establish a community forum with somewhat benevolent rules applying to regular users. We have several software products used by our customers and so I would like to have a category for each product and some discussions related to these products inside each category. So far so good. Sadly, it gets a little more complicated. Besides normally publicly accessible discussions within these categories, I need the ability to create private discussions in them, accessible only to selected users, while the users should be able to invite other users into the given group, ideally without the need to involve admins into the inviting process. Is this possible in Vanilla? I realize it’s a little unusual use case.
Is this possible using Vanilla?
Comments
@ondrej
Welcome to the community.
You can achieve this out of the box by using the Conversations/PM system.
Thanks for the suggestion. I know about that, but I would like to stick to having the private topics discussed as discussions and not PMs. One of the reasons is that after some time, the people may decide to make the topic public and it would make things unnecessarily complicated if some topics would be discussed via discussions and some via PMs.
Is it possible to achieve this using discussions?
Or, one other way would be if there would be a possibility to convert a PM conversation to a discussion in case the people deicde to make it public. I would be surprised if that would be possible though.
Why not simply create a custom user group/category with custom permissions?
I think that you would have to write a plugin for that. You would need to set the discussion as private with a virtual group attached to the discussion and allow the author to add users to the virtual group. Then you will need to filter the discussion to exclude those marked as private which are not in the virtual group of the browsing user. You will need to consider how to do the "invite" into the virtual group.
That's the beauty of Vanilla, it can all be done through plugins.
I'd say it depends how often you think a private conversation would then be made public.
You can export the contents of a conversation, and then you could simply paste that as a new discussion when needed.
I also think that publishing a conversation might be the easiest solution. A plugin for that would be far more simple than one for creating hidden discussions with an invitation mechanism
Here's a piece of information that may convince you to use conversations (courtesy of @R_J from another discussion) :
Because I need to allow the users to create the discussions on their own and creating special user group means that the admin has to do it.
I fully agree. Sadly, I don't know yet how often this will happen, but I need to be prepared.
In that case, why not start with using Conversations, which does everything you currently know you need, and then, if necessary, develop or commission a plugin to publish a conversation as a thread?
Probably. This crossed my mind, I just wanted to check if there maybe was a plugin or a method of doing this already. Anyways, thanks for all the ideas :-)
At first I thought it would be easy to convert a conversation into a discussion, but when I thought longer about it, there were aspects that seemed to be not trivial. Because I found it interesting, I started to write a plugin. It is not finished at all, but I'll take a break and do not know how much time I'll find. Maybe it is one of the plugins I'll never finished. Just to make sure I'll never forget it, I've uploaded it to GitHub: https://github.com/R-J/conversationPublication
What is missing should not be too hard to implement, but it definetly needs some time...