function FilterPermissions::permissions

Same name and namespace in other branches
  1. 9 core/modules/filter/src/FilterPermissions.php \Drupal\filter\FilterPermissions::permissions()
  2. 8.9.x core/modules/filter/src/FilterPermissions.php \Drupal\filter\FilterPermissions::permissions()
  3. 10 core/modules/filter/src/FilterPermissions.php \Drupal\filter\FilterPermissions::permissions()

Returns an array of filter permissions.

Return value

array An array of filter permissions keyed by permission name.

1 string reference to 'FilterPermissions::permissions'
filter.permissions.yml in core/modules/filter/filter.permissions.yml
core/modules/filter/filter.permissions.yml

File

core/modules/filter/src/FilterPermissions.php, line 47

Class

FilterPermissions
Provides dynamic permissions of the filter module.

Namespace

Drupal\filter

Code

public function permissions() {
  $permissions = [];
  // Generate permissions for each text format. Warn the administrator that
  // any of them are potentially unsafe.
  /** @var \Drupal\filter\FilterFormatInterface[] $formats */
  $formats = $this->entityTypeManager
    ->getStorage('filter_format')
    ->loadByProperties([
    'status' => TRUE,
  ]);
  uasort($formats, 'Drupal\\Core\\Config\\Entity\\ConfigEntityBase::sort');
  foreach ($formats as $format) {
    if ($permission = $format->getPermissionName()) {
      $permissions[$permission] = [
        'title' => $this->t('Use the <a href=":url">@label</a> text format', [
          ':url' => $format->toUrl()
            ->toString(),
          '@label' => $format->label(),
        ]),
        'description' => [
          '#prefix' => '<em>',
          '#markup' => $this->t('Warning: This permission may have security implications depending on how the text format is configured.'),
          '#suffix' => '</em>',
        ],
        // This permission is generated on behalf of $format text format,
        // therefore add this text format as a config dependency.
'dependencies' => [
          $format->getConfigDependencyKey() => [
            $format->getConfigDependencyName(),
          ],
        ],
      ];
    }
  }
  return $permissions;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.