A recent request we have received is related to managing things with the Groups plugin for WordPress. It touches on an interesting and important set of functions that would be great to have:
Is it possible to allow all users to create groups and manage who goes into those groups with this plugin? So if a person created a group, they would be the admin for that group and decide who is part of the group. Hope that makes sense.
Does it make sense? Yes. It actually makes a lot of sense!
Groups has been around for more than a decade and is actively maintained. In its current version (2.16.2 at the time of writing), it still does not have detailed management capabilities that one could use to, for example, designate a group manager. Such a user would be able to add users to a specific group or remove them from it. We can currently grant users permissions to do this, but not without granting them also the ability to do the same thing for any other group.
So what we’re missing is a way of saying, as a concrete example: Joe can add and remove members from the Premium group, but he cannot add to or remove anyone from the Staff group.
You might ask … why not? Haven’t we had enough time to do this in over a decade?
The answer is … it’s complicated. To incorporate such detailed permissions into the system is not only a question of time and resources required to develop it. Such enhancements would need to scale and provide optimum performance, for sites that have thousands, hundreds of thousands or even millions of users. Yes, I’ve been working on a model that would allow us to make it scalable for quite some time, and I’m sure we will eventually have this incorporated, but not right now. I really wish we had it already.
Groups runs on thousands of sites, some small, some large. Many sites rely on the plugin ecosystem that we have built around it and maintain. There are lots of sites around that are using Groups along with Groups WooCommerce for their membership needs. Even though we have already had feedback around these features in the past – see a selection below – I’m still not satisfied with having a large enough set of 1. potential users and 2. data on desired features to be sure that the model I’m considering would be flexible enough to accommodate everyone, big and small. I’m not sure if this should be provided as an optional add-on or whether it should be part of Groups itself. I can find reasons for and against both ways.
There is also the question of economic feasibility. Maintaining such a large tool for such a long time requires a tremendous effort and dedication. Keeping the feature set limited makes it somehow easier, yet that also limits the number of potential users who could benefit from Groups and its extensions. By the way, the model contemplated goes beyond just managing groups, it covers virtually any object and its relations to users. Things like, who can edit a post, restrict read access to a post, … once you start to think about it, you see that the whole thing can get huge. So an appropriate model needs to cover all of that, but I’m not going into technical details of the model here.
I’m taking the opportunity to compile a series of notable questions and requests we have had recently and in the past. These are related to the use of the Groups plugin as a tool to manage permissions around users, such as how users might be allowed to control the creation and assignment of users to groups in WordPress. This list is by no means exhaustive, but it is representative of part of what we’re discussing here:
- User’s creating groups?
- Group Manager
- I am looking to create groups within it so individuals in those groups can access and edit their pages/post, but only theirs
- Manage Users
- see her groups as described and an additional note that there are other groups that can see the post
- can a group have an admin user?
- We are trying to create a group customer flow that works in the following manner
- I’m looking for a solution whereby the ‘group leader’ can only view or edit their own learner within that group.
- a nested flow as well as have user roles like Members (like subscribers), Moderators (something in-between), Managers (like group leaders)
- One type of user creates a user group
- Group owner restricted to own groups
- Create group admins to manage users of a group
- Only list groups that the user is assigned to
- Users groups account
- Restricting edit access instead of read access
- How to assign permissions for each group administrator
I wanted to share my extended thoughts here to provide a platform where others can participate in the discussion and share their opinion. This would have been way too much to post on the original topic from the WordPress forums.
So, if you would like to let me know your opinion on any of this, please feel welcome to post a comment. I’d certainly appreciate any input.