You are here

function hybridauth_user_insert in HybridAuth Social Login 7

Implements hook_user_insert().

File

./hybridauth.module, line 439

Code

function hybridauth_user_insert(&$edit, $account, $category) {

  // Make sure user has registered via HybridAuth.
  if (!isset($_SESSION['hybridauth'])) {
    return;
  }
  $provider_id = $_SESSION['hybridauth_provider_info']['id'];
  $provider_name = $_SESSION['hybridauth_provider_info']['name'];
  $profile = $_SESSION['hybridauth']['profile'];

  // Since we are inserting in two tables (authmap and hybridauth_account),
  // use a transaction.
  $txn = db_transaction();
  try {
    user_set_authmaps($account, array(
      'authname_hybridauth' => _hybridauth_encode_authname($provider_id, $profile['identifier']),
    ));

    // Get the new authmap ID and insert it in the hybridauth_account table
    $aid = db_query('SELECT aid FROM {authmap} WHERE authname = :id', array(
      'id' => _hybridauth_encode_authname($provider_id, $profile['identifier']),
    ))
      ->fetchField();
    db_insert('hybridauth_account')
      ->fields(array(
      'aid' => $aid,
      'provider_id' => $provider_id,
      'created' => REQUEST_TIME,
    ))
      ->execute();
  } catch (Exception $e) {
    $txn
      ->rollback();
    watchdog_exception('hybridauth', $e);
  }
}