content_entity_base-8.x-1.x-dev/src/ContentEntityBaseServiceProvider.php

src/ContentEntityBaseServiceProvider.php
<?php

namespace Drupal\content_entity_base;

use Drupal\content_entity_base\Entity\Access\EntityCreateAnyAccessCheck;
use Drupal\content_entity_base\Entity\Access\EntityRevisionRouteAccessCheck;
use Drupal\content_entity_base\Entity\Enhancer\EntityRevisionRouteEnhancer;
use Drupal\content_entity_base\ParamConverter\EntityRevisionParamConverter;
use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\Core\DependencyInjection\ServiceProviderBase;
use Symfony\Component\DependencyInjection\Reference;

/**
 * Allows dynamic configuration of services.
 */
class ContentEntityBaseServiceProvider extends ServiceProviderBase {

  /**
   * {@inheritdoc}
   */
  public function alter(ContainerBuilder $container) {
    // Get the entity_create_any access check if it exists.
    if ( !$container->has('access_check.entity_create_any') ) {
      // Add a back port of the core 8.1.x access_check.entity_create_any.
      $container
        ->register('access_check.entity_create_any', EntityCreateAnyAccessCheck::class)
        ->addArgument(new Reference('entity_type.manager'))
        ->addArgument(new Reference('entity_type.bundle.info'))
        ->addTag('access_check', ['applies_to' => '_entity_create_any_access']);
    }

    // Get the entity_revision param converter if it exists.
    if ( !$container->has('paramconverter.entity_revision') ) {
      // Add a back port of the core 8.1.x paramconverter.entity_revision.
      $container
        ->register('paramconverter.entity_revision', EntityRevisionParamConverter::class)
        ->addArgument(new Reference('entity_type.manager'))
        ->addTag('paramconverter');
    }

    // Get the entity_revision route enhancer if it exists.
    if ( !$container->has('route_enhancer.entity_revision') ) {
      // Add a back port of the core 8.1.x route_enhancer.entity_revision.
      $container
        ->register('route_enhancer.entity_revision', EntityRevisionRouteEnhancer::class)
        ->addTag('route_enhancer');
    }

    // Get the entity_revision access check if it exists.
    if ( !$container->has('access_check.entity.revision') ) {
      // Add a access check for entity revisions.
      $container
        ->register('access_check.entity.revision', EntityRevisionRouteAccessCheck::class)
        ->setArguments([new Reference('entity_type.manager'), new Reference('request_stack')])
        ->addTag('access_check', [
          'applies_to' => '_entity_access_revision',
        ]);
    }

    // Get the entity_revision access check if it exists.
    $revision_access_checker = $container->has('access_checker.entity_revision')
      ? $container->getDefinition('access_checker.entity_revision')
      : $container
        ->register('access_checker.entity_revision')
        ->addArgument(new Reference('entity_type.manager'))
        ->addTag('access_check', [
          'applies_to' => '_entity_access_revision',
        ]);
    // Use the content entity base class for checking access.
    $revision_access_checker
      ->setClass(EntityRevisionRouteAccessCheck::class)
      ->setArguments([new Reference('entity_type.manager'), new Reference('request_stack')]);
  }

}

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

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