grant-1.x-dev/modules/grant_cm/src/GrantCmServiceProvider.php

modules/grant_cm/src/GrantCmServiceProvider.php
<?php

namespace Drupal\grant_cm;

use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\Core\DependencyInjection\ServiceProviderBase;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Reference;

/**
 * Service provider for the grant_cm module.
 *
 * This is used to alter the content moderation services to add our grant
 * permission checks. This can't be done via a normal service declaration as
 * decorating optional services is not supported.
 */
class GrantCmServiceProvider extends ServiceProviderBase {

  /**
   * {@inheritdoc}
   */
  public function alter(ContainerBuilder $container) {
    $modules = $container->getParameter('container.modules');
    if (isset($modules['content_moderation'])) {

      // Decorate the state transition validation service.
      $state_transition_definition = new Definition(GrantStateTransitionValidation::class, [
        new Reference('content_moderation.moderation_information'),
        new Reference('grant.main'),
      ]);
      $state_transition_definition->setPublic(TRUE);
      $state_transition_definition->setDecoratedService('content_moderation.state_transition_validation');
      $container->setDefinition('grant_cm.state_transition_validation', $state_transition_definition);
    }
  }

}

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

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