You are here

protected function OpenIDConnectClientCollection::initializePlugin in OpenID Connect / OAuth client 2.x

Initializes and stores a plugin.

Parameters

string $instance_id: The ID of the plugin instance to initialize.

Overrides DefaultSingleLazyPluginCollection::initializePlugin

File

src/Plugin/OpenIDConnectClientCollection.php, line 43

Class

OpenIDConnectClientCollection
Provides a collection of OpenID Connect client plugins.

Namespace

Drupal\openid_connect\Plugin

Code

protected function initializePlugin($instance_id) {
  if (!$instance_id) {
    throw new PluginException("The OpenID Connect client '{$this->clientId}' did not specify a plugin.");
  }
  try {
    parent::initializePlugin($instance_id);
    if (isset($this->clientId)) {

      /** @var \Drupal\openid_connect\Plugin\OpenIDConnectClientInterface $plugin */
      $plugin = $this
        ->get($instance_id);
      $plugin
        ->setParentEntityId($this->clientId);
    }
  } catch (PluginException $e) {
    $module = $this->configuration['provider'];

    // Ignore clients belonging to uninstalled modules, but re-throw valid
    // exceptions when the module is installed and the plugin is
    // misconfigured.
    if (!$module || \Drupal::moduleHandler()
      ->moduleExists($module)) {
      throw $e;
    }
  }
}