paid_ads-8.x-1.x-dev/src/Permissions.php

src/Permissions.php
<?php

namespace Drupal\paid_ads;

use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
use Drupal\Core\Entity\EntityTypeManager;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\Core\StringTranslation\TranslationInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Class Permissions.
 */
class Permissions implements ContainerInjectionInterface {

  use StringTranslationTrait;

  /**
   * EntityTypeManager injection.
   *
   * @var \Drupal\Core\Entity\EntityTypeManager
   */
  private $entityTypeManager;

  /**
   * Gets dynamic permissions for node types.
   *
   * @return array
   *   Array with permissions in as yml format.
   *
   * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
   * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
   */
  public function getPermissions() {
    $permissions = [];
    $node_types = $this->entityTypeManager->getStorage('node_type')
      ->loadMultiple();
    foreach ($node_types as $node_type => $definition) {
      $permissions['paid_ads.field.edit_paid.' . $node_type] = [
        'title' => $this->t('Manage paid field of %node_type.', ['%node_type' => $definition->get('name')]),
        'description' => $this->t('Edit paid field on @node_type node.', ['@node_type' => $node_type]),
      ];
    }
    return $permissions;
  }

  /**
   * Permissions constructor.
   *
   * @param \Drupal\Core\Entity\EntityTypeManager $entityTypeManager
   *   Works with entity types.
   * @param \Drupal\Core\StringTranslation\TranslationInterface $string_translation
   *   Provides translatable strings. Uses in StringTranslationTrait.
   */
  public function __construct(EntityTypeManager $entityTypeManager, TranslationInterface $string_translation) {
    $this->entityTypeManager = $entityTypeManager;
    $this->stringTranslation = $string_translation;
  }

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    return new static($container->get('entity_type.manager'), $container->get('string_translation'));
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc