The Drupal 7 admin/people/permissions is always been troublesome for big Drupal sites, there are some flaws
- PHP renders all checkboxes for all roles at once (yes, I know you can limit it to 1 role)
- If you want to edit the roles (or open the permissions for only one role) you have to open the permissions page first, to be able to click on the tab of the roles
- There's no link from admin/people to the roles page
- All modules are shown on the permissions page, most of the time you only want so set permissions on a few modules.
We created a new module - Dream permissions to solve most of these problems. It started when one of our projects ended up with 32000 checkboxes on the permission page, with a load time of 20 seconds and basically killing the browser.
Setting permissions has become a 2-step process.
Selecting the relevant roles and modules
The first screen allows you to
- select the roles you want to set permissions for, we added a filter so you can easily reduce the list of roles.
- select the modules you're interested in, and similar to the roles it has a filter as well.
- limit the returned permissions by a part of the name (both human readable and machine name are supported).
Setting the permissions
The second page only shows you the relevant permissions, at the top of the table there's even a filter to easily show the permissions you're interested in.
At admin/config/people/dream_permissions you can set some general settings like
- Replace the build in permissions page, avoiding people using it
- Exclude roles from the available roles
- Exclude modules from the available modules
For the moment there's no Drupal 8 version available, if you want to track the progress, keep an eye on this issue. If you want to have a Drupal 8 version, but are not able to code it, feel free to contact us.