Hello and thank you for contacting the Toolset support.
Most of the requirements can be achieved with Toolset, others may need custom code or a different approach at all, others may be "impossible". I'll try to discuss each point below:
1. User registration
You can have, both, a form to create a user with a specific role or to a edit a user and assign him a specific role. In Toolset->User Forms, you can create a new form and configure it to be for creating or editing users. In both cases, you can define what role the user will be assigned. Check these articles:
- https://toolset.com/documentation/getting-started-with-toolset/publish-content-from-the-front-end/forms-for-registering-users/
- https://toolset.com/documentation/getting-started-with-toolset/publish-content-from-the-front-end/forms-for-editing/
Then you can insert the form on a page that is accessible only by your administrative users.
2. Member posts
For public and private posts, you can rely on a custom field or relay on the builtin "private" status for posts from WordPress.
For semi-private posts, you may use the group access feature from Toolset Access, but the only graphical user interface for this is on the backend. You may implement it on the frontend with custom coding. The access group for a post is saved in a special custom field. We may discuss this further if you want, but this is an entirely custom code, which is out of the scope of the support forum.
Check this article about group access https://toolset.com/documentation/user-guides/access-control/limiting-read-access-specific-content/
For member posts, I believe this is a complex feature. It may be leveraged entirely with Toolset relationships and some custom coding. Let's discuss it later after point (3).
3. Member groups
Personally, I would go with a third party plugin that provides the most of the requirements for inviting, sharing with specific users, etc. I am not aware of a plugin that does entirely this, but I think that BuddyPress may be customized to suit you. It already provides groups, private messaging, Friendships, and other social networks like features.
hidden link
4. Messaging functionality between users
If you would like to implement a chat later, you will definitely need custom code to implement AJAX forms and "Conversation status" activity if you intend to use Toolset. We are providing CHAT support based on Toolset and custom code and some advanced architecture decisions, that I cannot discuss further. Depending on your business decisions, maybe integrating a 3rd party service is the best solution. Personally, that's what I would have chosen.
Feel free to ask any questions about it and we can push the discussion further.
5. Member posts taxonomy
This cannot be done without deep integration with WordPress. If you check the WordPress data model here https://codex.wordpress.org/Database_Description
You will notice that the table for posts(wp_posts) has a column "post_author" to connect a post with a user. Terms do not have this feature at all.
You may want to other custom posts types and Toolset relationships to simulate the taxonomies features, but that will add some complexity. In fact, Toolset does not allow to filter views with more than ONE relationship at the moment.
You may decide to use global taxonomies, and configure your views search/filters to display only the terms that are assigned to a post in the results. But taxonomy terms may still be used in posts that belong to different users.
I hope this answers your questions a bit. Let me know if you need more details on a specific point. Or you may create a new ticket, as we try to work on one issue per ticket to conform to our support rules.