You are here

hybridauth.module in HybridAuth Social Login 6.2

Same filename and directory in other branches
  1. 7.2 hybridauth.module
  2. 7 hybridauth.module

Main file for the HybridAuth module.

File

hybridauth.module
View source
<?php

/**
 * @file
 * Main file for the HybridAuth module.
 */
define('HYBRIDAUTH_HASH_SALT', 'hybridauth_hash_salt');
if (module_exists('token')) {
  include_once drupal_get_path('module', 'hybridauth') . '/hybridauth.tokens.inc';
}

/**
 * Implements hook_perm().
 */
function hybridauth_perm() {
  return array(
    'use hybridauth',
  );
}

/**
 * Implements hook_menu().
 */
function hybridauth_menu() {
  $items = array();
  $items['admin/user/hybridauth'] = array(
    'title' => 'HybridAuth',
    'description' => 'Manage HybridAuth social sign-on settings.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'hybridauth_admin_settings',
    ),
    'access arguments' => array(
      'administer site configuration',
    ),
    'file' => 'hybridauth.admin.inc',
  );
  $items['admin/user/hybridauth/provider/%hybridauth_provider'] = array(
    'title callback' => 'hybridauth_get_provider_name',
    'title arguments' => array(
      4,
    ),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'hybridauth_admin_provider_settings',
      4,
    ),
    'access arguments' => array(
      'administer site configuration',
    ),
    'file' => 'hybridauth.admin.inc',
  );
  $items['admin/reports/hybridauth'] = array(
    'title' => 'HybridAuth identities',
    'description' => 'View HybridAuth identities counts grouped by authentication provider.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'hybridauth_report',
    ),
    'access arguments' => array(
      'access site reports',
    ),
    'file' => 'hybridauth.admin.inc',
    'type' => MENU_NORMAL_ITEM,
  );
  $items['hybridauth/endpoint'] = array(
    'page callback' => 'hybridauth_endpoint',
    'access callback' => TRUE,
    'file' => 'hybridauth.pages.inc',
    'type' => MENU_CALLBACK,
  );
  $items['hybridauth/window/%hybridauth_provider'] = array(
    'page callback' => 'hybridauth_window_start',
    'page arguments' => array(
      2,
    ),
    'access callback' => TRUE,
    'file' => 'hybridauth.pages.inc',
    'type' => MENU_CALLBACK,
  );
  $items['hybridauth/providers/%ctools_js'] = array(
    'page callback' => 'hybridauth_providers',
    'page arguments' => array(
      2,
    ),
    'access callback' => TRUE,
    'file' => 'hybridauth.pages.inc',
    'type' => MENU_CALLBACK,
  );
  $items['user/%user/hybridauth'] = array(
    'title' => 'HybridAuth',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'hybridauth_user_identity',
      1,
    ),
    'access callback' => 'user_edit_access',
    'access arguments' => array(
      1,
    ),
    'file' => 'hybridauth.pages.inc',
    'type' => MENU_LOCAL_TASK,
  );
  $items['user/%user/hybridauth/delete'] = array(
    'title' => 'Delete HybridAuth identity',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'hybridauth_user_identity_delete',
      1,
      4,
    ),
    'access callback' => 'user_edit_access',
    'access arguments' => array(
      1,
    ),
    'file' => 'hybridauth.pages.inc',
    'type' => MENU_CALLBACK,
  );
  return $items;
}

/**
 * Menu argument loader.
 */
function hybridauth_provider_load($requested_provider_id) {
  foreach (array_keys(hybridauth_providers_list()) as $provider_id) {
    if (strtolower($requested_provider_id) === strtolower($provider_id)) {
      return $provider_id;
    }
  }
  return $requested_provider_id;
}

/**
 * Implements hook_block.
 */
function hybridauth_block($op = 'list', $delta = 0, $edit = array()) {
  if ($op == 'list') {
    return array(
      'hybridauth' => array(
        'info' => t('User login - HybridAuth widget only'),
        // Shouldn't be cached.
        'cache' => BLOCK_NO_CACHE,
      ),
    );
  }
  elseif ($op == 'view' && $delta == 'hybridauth' && !user_is_logged_in()) {
    $block = array();
    $block['subject'] = t('User login');
    $element['#type'] = 'hybridauth_widget';
    $block['content'] = drupal_render($element);
    return $block;
  }
}

/**
 * Implements hook_user().
 */
function hybridauth_user($op, &$edit, &$account, $category = NULL) {
  if ($op == 'login') {
    _hybridauth_session_sync_data($account->uid);
  }
  elseif ($op == 'logout') {

    //session is already destroyed - so no sense to check anything here
  }
  elseif ($op == 'delete') {
    _hybridauth_identity_delete_by_uid($account->uid);
    _hybridauth_session_delete_by_uid($account->uid);
  }
}

/**
 * Implements hook_form_alter().
 */
function hybridauth_form_alter(&$form, &$form_state, $form_id) {
  _hybridauth_form_alter($form, $form_state, $form_id);
}

/**
 * Implements hook_form_FORM_ID_alter().
 */
function hybridauth_form_comment_form_alter(&$form, &$form_state) {
  _hybridauth_form_alter($form, $form_state, 'comment_form');
}
function _hybridauth_form_alter(&$form, &$form_state, $form_id) {
  if (user_access('use hybridauth') && user_is_anonymous() && in_array($form_id, array_filter(variable_get('hybridauth_forms', array(
    'user_login',
    'user_login_block',
  ))))) {
    $form['hybridauth'] = array(
      '#type' => 'hybridauth_widget',
      '#weight' => variable_get('hybridauth_widget_weight', 100),
    );
  }
}

/**
 * Implements hook_form_FORM_ID_alter().
 */
function hybridauth_form_user_profile_form_alter(&$form, &$form_state) {
  if (!empty($form['_account']['#value']->hybridauth)) {
    if (variable_get('hybridauth_disable_username_change', 1)) {
      $form['account']['name']['#access'] = FALSE;
    }
    if (variable_get('hybridauth_remove_password_fields', 1)) {
      unset($form['account']['pass']);
    }
  }
}

/**
 * Implements hook_elements().
 */
function hybridauth_elements() {
  $types = array();
  $types['hybridauth_widget'] = array(
    '#input' => FALSE,
    '#theme' => 'hybridauth_widget',
    // '#theme_wrappers' => array('form_element'),
    '#hybridauth_id' => 'hybridauth',
    '#title' => variable_get('hybridauth_widget_title', 'Or log in with...'),
    // Setting weight here doesn't work in Drupal 6.
    // '#weight' => variable_get('hybridauth_widget_weight', 100),
    '#hybridauth_window_type' => variable_get('hybridauth_window_type', 'popup'),
    '#hybridauth_widget_type' => variable_get('hybridauth_widget_type', 'list'),
    '#hybridauth_widget_use_overlay' => variable_get('hybridauth_widget_use_overlay', 1),
    '#hybridauth_widget_link_text' => variable_get('hybridauth_widget_link_text', 'Social network account'),
    '#hybridauth_widget_link_title' => variable_get('hybridauth_widget_link_title', 'Social network account'),
    '#hybridauth_widget_icon_pack' => variable_get('hybridauth_widget_icon_pack', 'hybridauth_32'),
    '#hybridauth_widget_hide_links' => variable_get('hybridauth_widget_hide_links', 0),
    '#hybridauth_destination' => variable_get('hybridauth_destination', ''),
  );
  return $types;
}

/**
 * Implements hook_theme().
 */
function hybridauth_theme($existing, $type, $theme, $path) {
  return array(
    'hybridauth_admin_settings_providers_table' => array(
      'arguments' => array(
        'form' => NULL,
      ),
      'file' => 'hybridauth.admin.inc',
    ),
    'hybridauth_widget' => array(
      'arguments' => array(
        'element' => NULL,
      ),
      'template' => 'templates/hybridauth_widget',
      'file' => 'hybridauth.theme.inc',
    ),
    'hybridauth_provider_icon' => array(
      'arguments' => array(
        'icon_pack' => 'hybridauth_32',
        'provider_id' => NULL,
        'provider_name' => NULL,
      ),
      'template' => 'templates/hybridauth_provider_icon',
      'file' => 'hybridauth.theme.inc',
    ),
    'hybridauth_close_page' => array(
      'arguments' => array(
        'redirect' => TRUE,
        'destination' => NULL,
      ),
      'template' => 'templates/hybridauth_close_page',
    ),
  );
}

/**
 * Implements hook_username_alter().
 */

/*function hybridauth_username_alter(&$name, $account) {
  // Don't alter anonymous users or objects that do not have any user ID.
  if (empty($account->uid)) {
    return;
  }
  
  $account2 = user_load($account->uid);
  if (!empty($account2->data['hybridauth']) && !module_exists('realname')) {
    $hybridauth_pattern = variable_get('hybridauth_display_name', '[hybridauth_firstName] [hybridauth_lastName]');
    $pattern = str_replace('[user:name]', $account2->name, $hybridauth_pattern);
    $hybridauth_name = token_replace($pattern, array('user' => $account2), array('clear' => TRUE));
    $name = trim(strip_tags($hybridauth_name));
  }
}*/

/**
 * Implements hook_realname_alter().
 */

/*function hybridauth_realname_alter(&$realname, $account) {
  if (!empty($account->data['hybridauth']) && variable_get('hybridauth_override_realname', 0)) {
    $hybridauth_pattern = variable_get('hybridauth_display_name', '[hybridauth_firstName] [hybridauth_lastName]');
    $pattern = str_replace('[user:name]', $realname, $hybridauth_pattern);
    $hybridauth_name = token_replace($pattern, array('user' => $account), array('clear' => TRUE));
    $realname = trim(strip_tags($hybridauth_name));
  }
}*/

/**
 * Implements hook_ctools_plugin_TYPE().
 */
function hybridauth_ctools_plugin_icon_pack() {
  return array(
    'load themes' => TRUE,
  );
}

/**
 * Load metadata for a single icon pack without loading all icon packs.
 */
function hybridauth_get_icon_pack($name) {
  ctools_include('plugins');
  return ctools_get_plugins('hybridauth', 'icon_pack', $name);
}

/**
 * Load metadata for all icon packs
 */
function hybridauth_get_icon_packs() {
  ctools_include('plugins');
  return ctools_get_plugins('hybridauth', 'icon_pack');
}

/**
 * Implements hook_ctools_plugin_directory().
 */
function hybridauth_ctools_plugin_directory($module, $type) {
  if ($module == 'hybridauth' && $type == 'icon_pack') {
    return 'plugins/icon_pack';
  }
}

/**
 * Implements hook_email_registration_name().
 */
function hybridauth_email_registration_name($edit, $account) {
  global $hybridauth_data;
  if (!empty($hybridauth_data) || !empty($account->hybridauth)) {
    return $account->name;
  }
  return NULL;
}

/**
 * Implements hook_robotstxt().
 */
function hybridauth_robotstxt() {
  return array(
    '#HybridAuth paths',
    'Disallow: /hybridauth/',
    'Disallow: /?q=hybridauth/',
  );
}

/**
 * Internal functions.
 */
function hybridauth_providers_list() {
  static $providers;
  if (!isset($providers)) {
    $raw_providers = array(
      //core providers
      'AOL' => t('AOL'),
      'Facebook' => t('Facebook'),
      'Foursquare' => t('Foursquare'),
      'Google' => t('Google'),
      'LinkedIn' => t('LinkedIn'),
      'Live' => t('Windows Live'),
      'MySpace' => t('MySpace'),
      'OpenID' => t('OpenID'),
      'Twitter' => t('Twitter'),
      'Yahoo' => t('Yahoo'),
      //additional providers
      'px500' => t('500px'),
      'Disqus' => t('Disqus'),
      'FamilySearch' => t('FamilySearch'),
      'Geni' => t('Geni'),
      'GitHub' => t('GitHub'),
      'Goodreads' => t('Goodreads'),
      //'Gowalla' => t('Gowalla'), //RIP
      'Identica' => t('Identica'),
      'Instagram' => t('Instagram'),
      'LastFM' => t('LastFM'),
      'Mailru' => t('Mail.ru'),
      'Murmur' => t('Murmur'),
      'MyHeritage' => t('MyHeritage'),
      'Odnoklassniki' => t('Odnoklassniki'),
      'Pixnet' => t('Pixnet'),
      'Plurk' => t('Plurk'),
      'QQ' => t('QQ'),
      'Sina' => t('Sina'),
      'Skyrock' => t('Skyrock'),
      'Steam' => t('Steam'),
      'Tumblr' => t('Tumblr'),
      'TwitchTV' => t('Twitch.tv'),
      'Viadeo' => t('Viadeo'),
      'Vimeo' => t('Vimeo'),
      'Vkontakte' => t('VKontakte'),
      'Yandex' => t('Yandex'),
    );
    foreach (hybridauth_providers_files() as $name => $file) {
      if (!array_key_exists($name, $raw_providers)) {
        $raw_providers[$name] = $name;
      }
    }
    $providers = array();
    $weights = array();
    foreach ($raw_providers as $provider_id => $provider_name) {
      $weights[$provider_id] = variable_get('hybridauth_provider_' . $provider_id . '_weight', 0);
    }
    asort($weights);
    foreach ($weights as $provider_id => $weight) {
      $providers[$provider_id] = $raw_providers[$provider_id];
    }
  }
  return $providers;
}

/**
 * Returns available providers files, keyed by filename without extension.
 */
function hybridauth_providers_files() {
  $cache = cache_get('hybridauth_providers_files');
  if (!empty($cache->data)) {
    $files = $cache->data;
  }
  else {
    $files = file_scan_directory(_hybridauth_library_path() . '/Hybrid/Providers', '\\.php$', array(
      '.',
      '..',
      'CVS',
    ), 0, TRUE, 'name');
    cache_set('hybridauth_providers_files', $files, 'cache', CACHE_TEMPORARY);
  }
  return $files;
}
function hybridauth_fields_list() {
  return array(
    'provider' => t('Authentication provider'),
    'identifier' => t('UID'),
    'profileURL' => t('Profile URL'),
    'webSiteURL' => t('Website URL'),
    'photoURL' => t('Photo URL'),
    'displayName' => t('Nickname'),
    'description' => t('Short bio or about me'),
    'firstName' => t('First name'),
    'lastName' => t('Last name'),
    'gender' => t('Gender'),
    'language' => t('Language'),
    'age' => t('Age'),
    'birthDay' => t('Birth day'),
    'birthMonth' => t('Birth month'),
    'birthYear' => t('Birth year'),
    'email' => t('E-mail address'),
    'emailVerified' => t('Verified email address'),
    'phone' => t('Phone number'),
    'address' => t('Address'),
    'country' => t('Country'),
    'region' => t('State or region'),
    'city' => t('City'),
    'zip' => t('Postal code or zipcode'),
  );
}

/**
 * Returns auth provider name by provider ID.
 */
function hybridauth_get_provider_name($provider_id) {
  $providers = hybridauth_providers_list();
  return isset($providers[$provider_id]) ? $providers[$provider_id] : NULL;
}
function hybridauth_get_enabled_providers() {
  static $providers;
  if (!isset($providers)) {
    $providers = array();
    foreach (hybridauth_providers_list() as $provider_id => $provider_name) {
      if ($provider_config = hybridauth_get_provider_config($provider_id)) {
        $providers[$provider_id] = $provider_name;
      }
    }
  }
  return $providers;
}
function hybridauth_get_instance() {
  static $controller;
  if (!isset($controller)) {
    $controller = FALSE;
    if ($lib_path = _hybridauth_library_path()) {
      try {
        require_once $lib_path . '/Hybrid/Auth.php';
        $config = hybridauth_get_config();
        $controller = new Hybrid_Auth($config);
      } catch (Exception $e) {

        //watchdog_exception('hybridauth', $e);
        watchdog('hybridauth', $e
          ->getMessage(), array(), WATCHDOG_ERROR);
      }
    }
  }
  return $controller;
}
function hybridauth_get_config() {
  static $config;
  if (!isset($config)) {
    if (variable_get('hybridauth_debug', FALSE) && !file_exists(file_directory_temp() . '/hybridauth.debug.log')) {
      file_put_contents(file_directory_temp() . '/hybridauth.debug.log', '');
    }
    $config = array(
      'base_url' => url('hybridauth/endpoint', array(
        'absolute' => TRUE,
      )),
      'providers' => array(),
      'debug_mode' => variable_get('hybridauth_debug', FALSE),
      'debug_file' => file_directory_temp() . '/hybridauth.debug.log',
    );
    foreach (hybridauth_providers_list() as $provider_id => $provider_name) {
      if ($provider_config = hybridauth_get_provider_config($provider_id)) {
        $config['providers'][$provider_id] = $provider_config;
      }
    }
  }
  return $config;
}

/**
 * Returns provider config.
 */
function hybridauth_get_provider_config($provider_id, $enabled_only = TRUE) {
  $config = NULL;
  $enabled = variable_get('hybridauth_provider_' . $provider_id . '_enabled', 0);
  if (!$enabled_only || $enabled) {
    $config = array(
      'enabled' => $enabled,
      'keys' => array(
        'id' => trim(variable_get('hybridauth_provider_' . $provider_id . '_keys_id', '')),
        'key' => trim(variable_get('hybridauth_provider_' . $provider_id . '_keys_key', '')),
        'secret' => trim(variable_get('hybridauth_provider_' . $provider_id . '_keys_secret', '')),
      ),
      'scope' => variable_get('hybridauth_provider_' . $provider_id . '_scope', ''),
      'display' => variable_get('hybridauth_provider_' . $provider_id . '_display', 'popup'),
      'hauth_return_to' => url('hybridauth/endpoint'),
    );
    if (is_array($config['scope'])) {
      $config['scope'] = array_filter($config['scope']);
    }
  }
  return $config;
}

/**
 * Returns connected providers for the current user.
 */
function hybridauth_get_connected_providers() {
  $connected_providers = array();
  if (user_is_logged_in() && ($hybridauth = hybridauth_get_instance())) {
    try {
      foreach ($hybridauth
        ->getConnectedProviders() as $provider_id) {
        $connected_providers[$provider_id] = hybridauth_get_provider_name($provider_id);
      }
    } catch (Exception $e) {

      //watchdog_exception('hybridauth', $e);
      watchdog('hybridauth', $e
        ->getMessage(), array(), WATCHDOG_ERROR);
    }
  }
  return $connected_providers;
}

/**
 * Returns the path to the HybridAuth library.
 */
function _hybridauth_library_path() {
  static $library_path;
  if (!isset($library_path)) {
    $library_path = variable_get('hybridauth_library_path', module_exists('libraries') ? libraries_get_path('hybridauth') : 'sites/all/libraries/hybridauth');
    if (file_exists($library_path . '/Hybrid/Auth.php')) {

      //return $library_path;
    }
    elseif (file_exists($library_path . '/hybridauth/Hybrid/Auth.php')) {
      $library_path .= '/hybridauth';
    }
    else {
      watchdog('hybridauth', 'HybridAuth library is missing.', array(), WATCHDOG_ERROR);
      return FALSE;
    }
  }
  return $library_path;
}
function _hybridauth_add_icon_pack_files($name) {
  static $done;
  if (!isset($done[$name])) {
    $done[$name] = TRUE;
    $icon_pack = hybridauth_get_icon_pack($name);
    if (!empty($icon_pack['css'])) {
      drupal_add_css($icon_pack['path'] . '/' . $icon_pack['css']);
    }
    if (!empty($icon_pack['js'])) {
      drupal_add_js($icon_pack['path'] . '/' . $icon_pack['js']);
    }
  }
}
function _hybridauth_make_username($data) {
  if (empty($data['username'])) {
    $pattern = variable_get('hybridauth_username', '[firstName] [lastName]');
    $hybridauth_name = $desired_name = trim(token_replace($pattern, 'hybridauth', $data, '[', ']', array(
      'clear' => TRUE,
    )));
  }
  else {
    $hybridauth_name = $desired_name = trim($data['username']);
  }
  $counter = 0;
  while (user_load(array(
    'name' => $hybridauth_name,
  ))) {
    $counter++;
    $hybridauth_name = $desired_name . ' ' . $counter;
  }
  $name = $hybridauth_name;
  drupal_alter('hybridauth_username', $name, $data);

  //check that the altered username is unique
  if ($name == $hybridauth_name || user_load(array(
    'name' => $name,
  ))) {
    return $hybridauth_name;
  }
  else {
    return $name;
  }
}
function _hybridauth_user_is_blocked_by_uid($uid) {
  return db_fetch_object(db_query("SELECT name FROM {users} WHERE status = 0 AND uid = %d", $uid));
}
function _hybridauth_user_login_access_by_uid($uid) {
  $login = db_result(db_query("SELECT login FROM {users} WHERE uid = %d", $uid));
  return !($login == 280281600);

  //Dries birthday timestamp, Nov 19, 1978 :)
}
function _hybridauth_provider_identifier($identifier) {
  $provider_identifier = strlen($identifier) > 32 ? md5($identifier . HYBRIDAUTH_HASH_SALT) : $identifier;
  return $provider_identifier;
}
function _hybridauth_identity_save($data, $uid = NULL) {
  global $user;
  $uid = $uid ? $uid : $user->uid;

  //check if this identity is already registered - this might not be needed

  //db_result(db_query("SELECT uid FROM {hybridauth_identity} WHERE provider = '%s' AND provider_identifier = '%s'",

  //  $data['provider'], $data['identifier']));

  //TODO: use drupal_write_record()?
  db_query("INSERT INTO {hybridauth_identity} (uid, provider, provider_identifier, data) VALUES (%d, '%s', '%s', '%s')", $uid, $data['provider'], _hybridauth_provider_identifier($data['identifier']), serialize($data));
  _hybridauth_session_sync_data($uid);
}
function _hybridauth_identity_load($data) {
  $result = db_query("SELECT * FROM {hybridauth_identity} WHERE provider = '%s' AND provider_identifier = '%s'", $data['provider'], _hybridauth_provider_identifier($data['identifier']));
  return db_fetch_array($result);
}
function _hybridauth_identity_load_by_uid($uid) {
  $result = db_query("SELECT * FROM {hybridauth_identity} WHERE uid = %d", $uid);
  $identities = array();
  while ($identity = db_fetch_array($result)) {
    $identities[$identity['id']] = $identity;
  }
  return $identities;
}
function _hybridauth_identity_load_by_id($id) {
  $result = db_query("SELECT * FROM {hybridauth_identity} WHERE id = %d", $id);
  return db_fetch_array($result);
}
function _hybridauth_identity_delete_by_uid($uid) {
  $result = db_query("DELETE FROM {hybridauth_identity} WHERE uid = %d", $uid);
  return $result;
}
function _hybridauth_identity_delete_by_id($id) {
  $result = db_query("DELETE FROM {hybridauth_identity} WHERE id = %d", $id);
  return $result;
}
function _hybridauth_session_save($data, $uid = NULL) {
  global $user;
  $uid = $uid ? $uid : $user->uid;
  _hybridauth_session_delete_by_uid($uid);

  //TODO: use drupal_write_record()?
  db_query("INSERT INTO {hybridauth_session} (uid, data, updated) VALUES (%d, '%s', %d)", $uid, $data, time());
}
function _hybridauth_session_load_by_uid($uid) {
  $result = db_query("SELECT * FROM {hybridauth_session} WHERE uid = %d", $uid);
  return db_fetch_array($result);
}
function _hybridauth_session_delete_by_uid($uid) {
  $result = db_query("DELETE FROM {hybridauth_session} WHERE uid = %d", $uid);
  return $result;
}
function _hybridauth_session_sync_data($uid) {
  if ($hybridauth = hybridauth_get_instance()) {
    $hybridauth_session_data_current = unserialize($hybridauth
      ->getSessionData());
    if (is_array($hybridauth_session_data_current)) {
      if ($hybridauth_session = _hybridauth_session_load_by_uid($uid)) {
        $hybridauth_session_data_ser = $hybridauth_session['data'];
        $hybridauth_session_data_ser = serialize(array_merge(unserialize($hybridauth_session_data_ser), $hybridauth_session_data_current));

        // Call Hybrid_Auth::restoreSessionData() to set stored data.
        $hybridauth
          ->restoreSessionData($hybridauth_session_data_ser);
        _hybridauth_session_save($hybridauth_session_data_ser, $uid);
      }
      else {
        _hybridauth_session_save(serialize($hybridauth_session_data_current), $uid);
      }
    }
    elseif ($hybridauth_session = _hybridauth_session_load_by_uid($uid)) {

      // Call Hybrid_Auth::restoreSessionData() to set stored data.
      $hybridauth
        ->restoreSessionData($hybridauth_session['data']);
    }
  }
}

Functions

Namesort descending Description
hybridauth_block Implements hook_block.
hybridauth_ctools_plugin_directory Implements hook_ctools_plugin_directory().
hybridauth_ctools_plugin_icon_pack Implements hook_ctools_plugin_TYPE().
hybridauth_elements Implements hook_elements().
hybridauth_email_registration_name Implements hook_email_registration_name().
hybridauth_fields_list
hybridauth_form_alter Implements hook_form_alter().
hybridauth_form_comment_form_alter Implements hook_form_FORM_ID_alter().
hybridauth_form_user_profile_form_alter Implements hook_form_FORM_ID_alter().
hybridauth_get_config
hybridauth_get_connected_providers Returns connected providers for the current user.
hybridauth_get_enabled_providers
hybridauth_get_icon_pack Load metadata for a single icon pack without loading all icon packs.
hybridauth_get_icon_packs Load metadata for all icon packs
hybridauth_get_instance
hybridauth_get_provider_config Returns provider config.
hybridauth_get_provider_name Returns auth provider name by provider ID.
hybridauth_menu Implements hook_menu().
hybridauth_perm Implements hook_perm().
hybridauth_providers_files Returns available providers files, keyed by filename without extension.
hybridauth_providers_list Internal functions.
hybridauth_provider_load Menu argument loader.
hybridauth_robotstxt Implements hook_robotstxt().
hybridauth_theme Implements hook_theme().
hybridauth_user Implements hook_user().
_hybridauth_add_icon_pack_files
_hybridauth_form_alter
_hybridauth_identity_delete_by_id
_hybridauth_identity_delete_by_uid
_hybridauth_identity_load
_hybridauth_identity_load_by_id
_hybridauth_identity_load_by_uid
_hybridauth_identity_save
_hybridauth_library_path Returns the path to the HybridAuth library.
_hybridauth_make_username
_hybridauth_provider_identifier
_hybridauth_session_delete_by_uid
_hybridauth_session_load_by_uid
_hybridauth_session_save
_hybridauth_session_sync_data
_hybridauth_user_is_blocked_by_uid
_hybridauth_user_login_access_by_uid

Constants

Namesort descending Description
HYBRIDAUTH_HASH_SALT @file Main file for the HybridAuth module.