Illustration of functionality

This module unobtrusively adds additional checkboxes to the permissions form located at admin/user/permissions - the additional checkboxes provide a much friendlier interface for dealing with the hundreds of checkboxes that accumulate on the permissions page as roles and modules are added to a Drupal installation.

On a test Drupal site I set up with 6 user roles, 105 core and add-on modules enabled, 9 content types, and the content permissions module enabled, there were 138 distinct permissions and 828 individual checkboxes on the permissions page. To initially set up the permissions to something sane, it took me about 17 minutes. On my first attempt of using this module after fully developing it, after wiping and restoring the database from a back up, it took me around 5 minutes to set up the same permissions. The point is that this module will save you time, especially on large sites.

Please see attached image for the context of this list:

  1. The checkboxes placed along the header of the permissions page next to each role allow an administrator, with a single click, to select or deselect every item for a user role, which is useful if you have an administrative-type role, or wish to banish anonymous users from any access.
  2. The checkboxes placed next to each module name/section allow an administrator to select or deselect every permission associated with that module for all user roles.
  3. The checkboxes placed in the header above the permissions boxes to the right of the module name/section allow every checkbox for the selected user role and module to be enabled or disabled.
  4. The checkboxes next to each individual permission allow all roles to be enabled or disabled for that particular permission.

All additional checkboxes are inserted into the DOM using a jQuery plugin that also binds the new checkboxes with the events to handle their role.

To visually seperate the check-all checkboxes from the permission boxes, an additional jQuery plugin is used named jquery.checkbox.js, written by Khavilo Dmitry (wm.morgun at gmail.com), distributed under the MIT license, available here: http://widowmaker.kiev.ua/checkbox/ . The safari theme was chosen for the graphical checkboxes, but the colors were changed to reduce confusion for Mac users.

Future enhancements include cleaning up and optimising the DOM traversal code to be a bit faster, creating different checkbox looks for each type of checkbox (checkall role, checkall module, checkall role for a module, checkall permission), adding a copy/paste function for permissions to duplicate a role, and implementing this on other forms that may benefit from this.

Project Information

Downloads