Fast Permissions Administration

Enhances Drupal's permissions administration page with fast filtering, role selection, and bulk permission management capabilities.

fpa
15,983 sites
77
drupal.org

Install

Drupal 11, 10, 9 v4.0.1
composer require 'drupal/fpa:^4.0'
Drupal 8 v3.0.3
composer require 'drupal/fpa:^3.0'

Overview

Fast Permissions Administration (FPA) is a module designed to alleviate the frustration of managing permissions in Drupal by providing a significantly enhanced permissions interface. The module completely replaces the core permissions administration form with an improved version that includes powerful filtering, searching, and bulk editing capabilities.

The module adds a permission and module filter that allows administrators to quickly find specific permissions using a "permission@module" search syntax. A sidebar module list provides quick navigation to permissions from specific modules, while role filtering allows administrators to show only the roles they need to work with. Additionally, the module provides toggle checkboxes in both column headers and row labels for bulk permission assignment, along with toggle buttons to show/hide permission descriptions and system names.

FPA includes intelligent memory management that warns administrators if viewing all permissions might exceed PHP's memory limit, and recommends the Filter Permissions module as a companion for sites with many roles and permissions.

Features

  • Permission filtering using "permission@module" search syntax - filter by permission name and/or module name simultaneously
  • Role filtering with multi-select dropdown to display only specific roles
  • Module list sidebar for quick navigation - click any module to filter permissions to only that module
  • Column header checkboxes to toggle all visible permissions for a role at once
  • Row toggle checkboxes to toggle all visible permissions for a specific permission across visible roles
  • Show/Hide descriptions toggle to reduce visual clutter
  • Show/Hide system names toggle to display machine names for permissions and modules
  • Visual indicators showing unsaved changes - green glow for newly checked, red glow for newly unchecked
  • Reset changes button to restore the form to its original state
  • Mobile-friendly interface with larger touch targets for checkboxes
  • Cookie-based filter persistence to maintain filter state across page loads
  • Memory limit checking with warnings when the permissions page might exceed PHP memory
  • Sticky table headers that remain visible while scrolling
  • Integration with Filter Permissions module for memory optimization on large sites

Use Cases

Bulk assigning permissions to a new role

When creating a new role that needs many permissions, use FPA's column header checkbox to quickly toggle all permissions for that role. First filter to show only the new role using the Roles dropdown, then use the column checkbox to select all permissions at once, and uncheck any that shouldn't apply.

Finding all permissions for a specific module

Click on a module name in the left sidebar to instantly filter the permissions table to show only that module's permissions. This is useful when configuring a newly installed module or auditing permissions for a specific feature.

Auditing which roles have administrative permissions

Use the filter field to search for "admin" to find all permissions containing "admin" in their name. Then use the Roles filter to show specific roles and the "Display permissions that are" checkboxes to show only checked permissions, revealing which roles have administrative access.

Copying permissions between roles

Filter to show only the source role, note which permissions are checked, then filter to show the target role and use the row toggle checkboxes to quickly assign the same permissions.

Finding unassigned permissions

Select a specific role in the Roles filter, then check only "Not Checked" in the display filter. This shows all permissions that the selected role does NOT have, making it easy to audit for missing permissions.

Tips

  • Use the "permission@module" syntax to narrow down results quickly - for example "access@node" finds node access permissions
  • Click directly on a system name in the table to copy it via a prompt dialog
  • The green glow indicates a checkbox was checked since page load, red glow indicates it was unchecked - both represent unsaved changes
  • Use Ctrl+click in the Roles dropdown to select multiple specific roles
  • The module counter in the sidebar shows how many permissions match your current filter out of the total for each module

Technical Details

Admin Pages 1
Permissions /admin/people/permissions

Enhanced permissions administration page that replaces Drupal core's default permissions form. Provides fast filtering, role selection, and bulk permission management capabilities. The page displays all available permissions organized by module with checkboxes for each role.

Hooks 3
hook_help

Provides help text for the permissions page explaining the filter syntax.

hook_form_FORM_ID_alter

Alters the user_admin_permissions form to add memory limit warning when Filter Permissions module is active.

hook_requirements

Checks PHP memory limit against estimated requirements for rendering the permissions page and displays status report warning if insufficient.

Troubleshooting 4
Permissions page is slow to load or causes memory errors

The permissions page requires significant memory when many roles and permissions exist. Install the Filter Permissions module to reduce the number of items rendered at once. Alternatively, increase PHP's memory_limit setting. FPA displays a warning on the status report page if memory may be insufficient.

Filters are not persisting between page loads

FPA uses browser cookies to store filter state. Ensure cookies are enabled in your browser. The cookie names are 'fpa_filter', 'fpa_roles', and 'fpa_module_match'.

Column toggle checkbox not working for all rows

The column toggle checkboxes only affect visible rows. If permissions are filtered, only the filtered permissions will be toggled. To toggle all permissions for a role, first clear the filter by clicking 'Clear filter'.

System names column not appearing

Click the 'Show system names' toggle link at the top of the page. The system names column is hidden by default to reduce visual clutter.