You are here

function openid_connect_update_8105 in OpenID Connect / OAuth client 2.x

Same name and namespace in other branches
  1. 8 openid_connect.install \openid_connect_update_8105()

Delete duplicate entries in the openid_connect_authmap table.

File

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

Code

function openid_connect_update_8105() {
  $database = \Drupal::database();

  // Get the IDs for the duplicate entries.
  $query = $database
    ->select('openid_connect_authmap', 'a1')
    ->fields('a1', [
    'aid',
  ]);
  $query
    ->innerJoin('openid_connect_authmap', 'a2', 'a1.uid = a2.uid AND a1.client_name = a2.client_name AND a1.sub = a2.sub');
  $query
    ->where('a1.aid > a2.aid');
  $aids = $query
    ->distinct()
    ->execute()
    ->fetchAllAssoc('aid');
  if (!empty($aids)) {

    // If duplicates exist, delete them.
    $database
      ->delete('openid_connect_authmap')
      ->condition('aid', array_keys($aids), 'IN')
      ->execute();
  }
}