diff -u b/core/modules/system/src/Form/ModulesListForm.php b/core/modules/system/src/Form/ModulesListForm.php --- b/core/modules/system/src/Form/ModulesListForm.php +++ b/core/modules/system/src/Form/ModulesListForm.php @@ -24,6 +24,7 @@ use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\Routing\RouteProviderInterface; use Drupal\Core\Session\AccountInterface; +use Drupal\user\PermissionHandlerInterface; use Drupal\Core\Url; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\Request; @@ -95,6 +96,13 @@ protected $moduleInstaller; /** + * The permission handler. + * + * @var \Drupal\user\PermissionHandlerInterface + */ + protected $permissionHandler; + + /** * {@inheritdoc} */ public static function create(ContainerInterface $container) { @@ -107,7 +115,8 @@ $container->get('current_route_match'), $container->get('title_resolver'), $container->get('router.route_provider'), - $container->get('plugin.manager.menu.link') + $container->get('plugin.manager.menu.link'), + $container->get('user.permissions') ); } @@ -132,8 +141,10 @@ * The route provider. * @param \Drupal\Core\Menu\MenuLinkManagerInterface $menu_link_manager * The menu link manager. + * @param \Drupal\user\PermissionHandlerInterface $permission_handler + * The permission handler. */ - public function __construct(ModuleHandlerInterface $module_handler, ModuleInstallerInterface $module_installer, KeyValueStoreExpirableInterface $key_value_expirable, AccessManagerInterface $access_manager, AccountInterface $current_user, RouteMatchInterface $route_match, TitleResolverInterface $title_resolver, RouteProviderInterface $route_provider, MenuLinkManagerInterface $menu_link_manager) { + public function __construct(ModuleHandlerInterface $module_handler, ModuleInstallerInterface $module_installer, KeyValueStoreExpirableInterface $key_value_expirable, AccessManagerInterface $access_manager, AccountInterface $current_user, RouteMatchInterface $route_match, TitleResolverInterface $title_resolver, RouteProviderInterface $route_provider, MenuLinkManagerInterface $menu_link_manager, PermissionHandlerInterface $permission_handler) { $this->moduleHandler = $module_handler; $this->moduleInstaller = $module_installer; $this->keyValueExpirable = $key_value_expirable; @@ -143,6 +154,7 @@ $this->titleResolver = $title_resolver; $this->routeProvider = $route_provider; $this->menuLinkManager = $menu_link_manager; + $this->permissionHandler = $permission_handler; } /** @@ -270,8 +282,7 @@ // Generate link for module's permission, if the user has access to it. $row['links']['permissions'] = array(); - $permission_handler = \Drupal::service('user.permissions'); - if ($module->status && \Drupal::currentUser()->hasPermission('administer permissions') && $permission_handler->moduleProvidesPermissions($module->getName())) { + if ($module->status && $this->currentUser->hasPermission('administer permissions') && $this->permissionHandler->moduleProvidesPermissions($module->getName())) { $row['links']['permissions'] = array( '#type' => 'link', '#title' => $this->t('Permissions'),