You are here

public function FilterPermissions::permissions in Drupal 10

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

Returns an array of filter permissions.

Return value

array

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 46

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;
}