It is possible to control access to certain Gutenberg blocks for some users or WordPress roles.
This is possible thanks to the PublishPress Blocks plugin and its Block Access system.
Keep reading to learn how to use this useful PublishPress Blocks feature.
Step #1. Install the PublishPress Blocks plugin
- Click Plugins > Add New.
- Type PublishPress Blocks in the search box.
- Click Install Now.
- Click Activate.
Step #2.Check the Default profile
PublishPress Blocks comes with a default profile. This profile is assigned to all users across the site unless stated otherwise. The Default profile is allowed to insert any and all blocks when editing a post.
- Click PublishPress Blocks > Profiles.
- Click Default.
You will be presented with a list of all blocks (Blocks list tab on the top left corner) which you can use within the WordPress Block Editor. These blocks are grouped into categories as follows:
- Text
- Media
- Design
- Widgets
- Embeds
- Reusable blocks
- PublishPress Blocks
Notice the possibility to enable/disable block features related to all blocks within the editor and not only to the ones managed by the PublishPress Blocks plugin.
Furthermore, there is the possibility to add new profiles and assign them either to single users or to entire WordPress roles. This can be done with the orange button labeled “New profile” (we are going to do this in a later step of this tutorial).
- Click the Profile Attribution tab.
You can activate/deactivate the profile you have created for a whole user group or for single users. I am working with a fresh installation of WordPress, so there is not much action here. Let’s create some users and get back here to check the possibilities.
Step #3. Create Users
In this step, we're going to create some users for our new profiles.
- Click Users > Add New.
- Create 4 users according to the table below:
Name | Group | Block access | Block restriction |
admin (default user) | Administrator | All blocks | – |
Jim | Editor | Almost all blocks | Widgets |
Mary | Author | Text, Media, Design, PublishPress Blocks | All other blocks |
Peter | Author | Text, Media (no files/no audio), PublishPress Blocks | All other blocks |
Ethel | Contributor | Text, PublishPress Blocks | All other blocks |
Notice that two of the new users, Mary and Peter, share the same group. However, Peter is not allowed to use Design blocks in his posts, while Mary is. Peter is also not allowed to upload text or audio to his posts. These permissions will be configured in Step #4.
Step #4. Create Profiles for the new users
We need to create and configure 4 profiles to match each use case:
- Editor
- Contributor
- Author
- Restricted author
Here are next thing we need to do for these profiles:
- Click PublishPress Blocks > Profiles > New profile
- Create the Editor profile first.
- Write a proper title.
- Active the profile only for the corresponding group.
- Click Save.
- Repeat the process with the other WP groups.
- Create a profile called Restricted author.
- Assign this profile to the author with the extra restriction.
- Turn off all group toggles.
- Click Save.
- Click Back to profiles list on the left column.
You will see the profiles you created. Now it is time to restrict the access to the specified blocks.
- Click the editor link.
- Click the Blocks list tab.
- Toggle off all blocks inside the Widgets section.
- Scroll down and click Save.
Repeat this process with the Contributor, Author, and Restricted author profiles, according to the table on step #3. Notice for example, that you have to disable two blocks inside the Media section when configuring the restricted author profile.
Follow the same logic to configure the other profiles.
- Click Save each time you make a change.
To recap:
- We have created several profiles.
- We have assigned these newly created profiles to a certain WP group, groups, and/or user/users.
- We have set the access permission to each block in the block editor for the different profiles, on a per-block basis.
You might find this process somehow cumbersome, however, that is just the first setup. After that, you can modify access permissions of already created profiles in a very quick way with a couple clicks.
Step #5. Test the permissions
For our final step, let's test the user accounts we have set up.
- Log out and log back in as the Contributor user
- Click Posts > Add New.
- Type the / symbol to search for the video block.
The only option available will be the PublishPress Blocks video block. This is also a good form of achieving a consistent style across contributors since they only have one option, so all videos across all Contributor posts will look the same, regarding their styling.
You can check with the other users we created on step #3 and discover all other possibilities offered by the profile system.
I hope you liked this tutorial and enjoy using Gutenberg. If you really don't enjoy Gutenberg, there are multiple ways you can disable the block editor. Thanks for reading and I hope the PublishPress Blocks plugin is useful for you.