You are here

function openid_connect_update_8200 in OpenID Connect / OAuth client 2.x

Convert client configuration objects to configuration entities.

File

./openid_connect.install, line 152
Install, update and uninstall functions for the OpenID Connect module.

Code

function openid_connect_update_8200() {
  $definitions = \Drupal::service('plugin.manager.openid_connect_client')
    ->getDefinitions();
  $entity_storage = \Drupal::entityTypeManager()
    ->getStorage('openid_connect_client');
  foreach ($definitions as $plugin) {
    $configuration = \Drupal::configFactory()
      ->getEditable('openid_connect.settings.' . $plugin['id']);

    // Only convert configuration where the client id or secret are not empty.
    $settings = $configuration
      ->get('settings');
    if (!empty($settings['client_id']) || !empty($settings['client_secret'])) {

      // Create new configuration entity.
      $entity_storage
        ->create([
        'status' => $configuration
          ->get('enabled'),
        'id' => $plugin['id'],
        'label' => $plugin['label']
          ->getUntranslatedString(),
        'plugin' => $plugin['id'],
        'settings' => $settings,
      ])
        ->save();
    }

    // Delete old configuration object.
    $configuration
      ->delete();
  }
}