Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. BlockContentPermissions.php

class BlockContentPermissions

Provide dynamic permissions for blocks of different types.

Hierarchy

  • class \Drupal\block_content\BlockContentPermissions implements \Drupal\Core\DependencyInjection\ContainerInjectionInterface uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\Entity\BundlePermissionHandlerTrait

Expanded class hierarchy of BlockContentPermissions

File

core/modules/block_content/src/BlockContentPermissions.php, line 15

Namespace

Drupal\block_content
View source
class BlockContentPermissions implements ContainerInjectionInterface {
    use StringTranslationTrait;
    use BundlePermissionHandlerTrait;
    
    /**
     * Constructs a BlockContentPermissions instance.
     *
     * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
     *   Entity type manager.
     */
    public function __construct(EntityTypeManagerInterface $entityTypeManager) {
    }
    
    /**
     * {@inheritdoc}
     */
    public static function create(ContainerInterface $container) {
        return new static($container->get('entity_type.manager'));
    }
    
    /**
     * Build permissions for each block type.
     *
     * @return array
     *   The block type permissions.
     */
    public function blockTypePermissions() {
        return $this->generatePermissions($this->entityTypeManager
            ->getStorage('block_content_type')
            ->loadMultiple(), [
            $this,
            'buildPermissions',
        ]);
    }
    
    /**
     * Return all the permissions available for a block type.
     *
     * @param \Drupal\block_content\Entity\BlockContentType $type
     *   The block type.
     *
     * @return array
     *   Permissions available for the given block type.
     */
    protected function buildPermissions(BlockContentType $type) {
        $type_id = $type->id();
        $type_params = [
            '%type_name' => $type->label(),
        ];
        return [
            "create {$type_id} block content" => [
                'title' => $this->t('%type_name: Create new content block', $type_params),
            ],
            "edit any {$type_id} block content" => [
                'title' => $this->t('%type_name: Edit content block', $type_params),
            ],
            "delete any {$type_id} block content" => [
                'title' => $this->t('%type_name: Delete content block', $type_params),
            ],
            "view any {$type_id} block content history" => [
                'title' => $this->t('%type_name: View content block history pages', $type_params),
            ],
            "revert any {$type_id} block content revisions" => [
                'title' => $this->t('%type_name: Revert content block revisions', $type_params),
            ],
            "delete any {$type_id} block content revisions" => [
                'title' => $this->t('%type_name: Delete content block revisions', $type_params),
            ],
        ];
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
BlockContentPermissions::blockTypePermissions public function Build permissions for each block type.
BlockContentPermissions::buildPermissions protected function Return all the permissions available for a block type.
BlockContentPermissions::create public static function Instantiates a new instance of this class. Overrides ContainerInjectionInterface::create
BlockContentPermissions::__construct public function Constructs a BlockContentPermissions instance.
BundlePermissionHandlerTrait::generatePermissions protected function Builds a permissions array for the supplied bundles.
StringTranslationTrait::$stringTranslation protected property The string translation service.
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use.
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal