You are here

ulogin.install in uLogin (advanced version) 7

Same filename and directory in other branches
  1. 8 ulogin.install
  2. 6 ulogin.install

File

ulogin.install
View source
<?php

/**
 * Implements hook_uninstall().
 */
function ulogin_uninstall() {
  variable_del('ulogin_display');
  variable_del('ulogin_widget_id');
  variable_del('ulogin_icons_path');
  variable_del('ulogin_widget_title');
  variable_del('ulogin_widget_weight');
  variable_del('ulogin_fields_required');
  variable_del('ulogin_fields_optional');
  variable_del('ulogin_providers_enabled');
  variable_del('ulogin_providers_main');
  variable_del('ulogin_destination');
  variable_del('ulogin_forms');
  variable_del('ulogin_duplicate_emails');
  variable_del('ulogin_redirect');
  variable_del('ulogin_pictures');
  variable_del('ulogin_email_confirm');
  variable_del('ulogin_disable_username_change');
  variable_del('ulogin_remove_password_fields');
  variable_del('ulogin_username');
  variable_del('ulogin_display_name');
  variable_del('ulogin_override_realname');

  // Deprecated variables.
  variable_del('ulogin_load_type');
  variable_del('ulogin_fields');
  variable_del('ulogin_optional');
  variable_del('ulogin_providers');
  variable_del('ulogin_hidden');
  variable_del('ulogin_adv_providers');
  variable_del('ulogin_adv_hidden');
}

/**
 * Implements hook_schema().
 */
function ulogin_schema() {
  $schema = array();
  $schema['ulogin_identity'] = array(
    'description' => 'Holds identities from uLogin service.',
    'fields' => array(
      'id' => array(
        'description' => 'Unique id of uLogin identity.',
        'type' => 'serial',
        'unsigned' => TRUE,
        'not null' => TRUE,
      ),
      'uid' => array(
        'description' => 'The {users}.uid that owns this uLogin identity.',
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
      ),
      'network' => array(
        'description' => 'The authentication provider for this uLogin identity.',
        'type' => 'varchar',
        'length' => 32,
        'not null' => TRUE,
        'default' => '',
      ),
      'ulogin_uid' => array(
        'description' => 'The uLogin uid for this uLogin identity.',
        'type' => 'varchar',
        'length' => 32,
        'not null' => TRUE,
        'default' => '',
      ),
      'data' => array(
        'description' => 'A serialized array containing information from uLogin service.',
        'type' => 'blob',
        'not null' => TRUE,
        'size' => 'normal',
      ),
    ),
    'indexes' => array(
      'uid' => array(
        'uid',
      ),
    ),
    'unique keys' => array(
      'network_ulogin_uid' => array(
        'network',
        'ulogin_uid',
      ),
    ),
    'foreign keys' => array(
      'ulogin_identity_user' => array(
        'table' => 'users',
        'columns' => array(
          'uid' => 'uid',
        ),
      ),
    ),
    'primary key' => array(
      'id',
    ),
  );
  return $schema;
}

/**
 * Converts variables to new format.
 */
function ulogin_update_7004(&$sandbox) {
  $enabled_providers = array();
  $main_providers = array();
  if (variable_get('ulogin_adv_providers', '') != '') {
    foreach (explode(',', variable_get('ulogin_adv_providers', '')) as $provider_id) {
      $enabled_providers[$provider_id] = $provider_id;
      $main_providers[$provider_id] = $provider_id;
    }
  }
  if (variable_get('ulogin_adv_hidden', '') != '') {
    foreach (explode(',', variable_get('ulogin_adv_hidden', '')) as $provider_id) {
      $enabled_providers[$provider_id] = $provider_id;
    }
  }
  if (empty($enabled_providers)) {
    foreach (variable_get('ulogin_providers', array(
      'vkontakte',
      'odnoklassniki',
      'mailru',
      'facebook',
    )) as $provider_id) {
      $enabled_providers[$provider_id] = $provider_id;
      $main_providers[$provider_id] = $provider_id;
    }
    foreach (variable_get('ulogin_hidden', array(
      'twitter',
      'google',
      'yandex',
      'livejournal',
      'openid',
    )) as $provider_id) {
      $enabled_providers[$provider_id] = $provider_id;
    }
  }
  variable_set('ulogin_providers_enabled', $enabled_providers);
  variable_set('ulogin_providers_main', $main_providers);
}

/**
 * Converts ulogin_fields to ulogin_fields_required.
 */
function ulogin_update_7003(&$sandbox) {
  variable_set('ulogin_fields_required', variable_get('ulogin_fields', array(
    'first_name',
    'last_name',
    'email',
    'nickname',
    'bdate',
    'sex',
    'photo',
    'photo_big',
    'country',
    'city',
  )));
}

/**
 * Disables ulogin_username module if it was installed.
 */
function ulogin_update_7002(&$sandbox) {
  if (module_exists('ulogin_username')) {
    module_disable(array(
      'ulogin_username',
    ), FALSE);
    drupal_uninstall_modules(array(
      'ulogin_username',
    ), FALSE);
    variable_set('ulogin_username', '[user:ulogin:first_name] [user:ulogin:last_name]');
  }
}

/**
 * Adds ulogin_identity table.
 */
function ulogin_update_7001(&$sandbox) {
  if (!db_table_exists('ulogin_identity')) {
    $schema = ulogin_schema();
    db_create_table('ulogin_identity', $schema['ulogin_identity']);
  }
}

Functions

Namesort descending Description
ulogin_schema Implements hook_schema().
ulogin_uninstall Implements hook_uninstall().
ulogin_update_7001 Adds ulogin_identity table.
ulogin_update_7002 Disables ulogin_username module if it was installed.
ulogin_update_7003 Converts ulogin_fields to ulogin_fields_required.
ulogin_update_7004 Converts variables to new format.