You are here

public function IpLoginServiceProvider::register in IP Login 4.x

Registers services to the container.

Parameters

ContainerBuilder $container: The ContainerBuilder to register services to.

Overrides ServiceProviderBase::register

File

src/IpLoginServiceProvider.php, line 20

Class

IpLoginServiceProvider
Defines the early ip_login middleware dynamically.

Namespace

Drupal\ip_login

Code

public function register(ContainerBuilder $container) {
  $config_storage = BootstrapConfigStorageFactory::get();
  $settings = $config_storage
    ->read('ip_login.settings');

  // Register the middlewares only if the auto-login feature is enabled.
  if ($settings['auto_login']) {
    $container
      ->register('ip_login.early_middleware', EarlyIpLoginMiddleware::class)
      ->addTag('http_middleware', [
      'priority' => 250,
      'responder' => TRUE,
    ])
      ->addMethodCall('setContainer', [
      new Reference('service_container'),
    ]);
    $container
      ->register('ip_login.middleware', IpLoginMiddleware::class)
      ->addTag('http_middleware', [
      'priority' => 30,
    ]);
    $container
      ->register('ip_login.page_cache_request_policy', IpLoginPageCacheRequestPolicy::class)
      ->addTag('page_cache_request_policy');
  }
}