Change record status: 
Project: 
Introduced in branch: 
9.3.x
Introduced in version: 
9.3.0
Description: 

Before Drupal 9.3.0

Site administrators can view and edit all permissions for all roles at /admin/people/permissions, or for just one role at /admin/people/roles/manage/authenticated (for the "Authenticated user" role).

Starting with Drupal 9.3.0

Site administrators can also view and edit permissions for a single module. For example, permissions for the Node module are at /admin/people/permissions/module/node. If a module does not provide any permissions, such as the Custom Block module, then the corresponding page will show Access Denied (403 response) even for administrative users.

The links on the Extend page (/admin/modules) now go to these pages instead of the appropriate section of the main Permissions page.

The links on Help pages that mentioned a specific module permission section on the permission page (eg.: /admin/people/permissions#module-block) now reference the module specific page form instead of the main Permissions page.

There is also a page for a list of modules, using the comma-separated list of machine names as the last part of the path. For example, /admin/people/permissions/module/action,node shows all the permissions provided by the Actions and Node modules.

When a site administrator enables one or more module from the Extend page, and at least one module provides permissions, the confirmation message includes a link to the page for the newly enabled module(s).

Module developers can provide links to the new pages using the route user.admin_permissions.module. The parameter modules can be one or more machine name, separated by commas. For example,

    // Generate a Url object for the Node module's permissions, if the user has
    // access to it.
    $route_parameters = ['modules' => 'node'];
    if (\Drupal::service('access_manager')->checkNamedRoute('user.admin_permissions.module', $route_parameters, \Drupal::currentUser())) {
      $url = Drupal\Core\Url::fromRoute('user.admin_permissions.module', $route_parameters);
    }
Impacts: 
Site builders, administrators, editors
Module developers
Updates Done (doc team, etc.)
Online documentation: 
Not done
Theming guide: 
Not done
Module developer documentation: 
Not done
Examples project: 
Not done
Coder Review: 
Not done
Coder Upgrade: 
Not done
Other: 
Other updates done