You are here

function hybridauth_admin_settings in HybridAuth Social Login 6.2

Same name and namespace in other branches
  1. 7.2 hybridauth.admin.inc \hybridauth_admin_settings()
  2. 7 hybridauth.admin.inc \hybridauth_admin_settings()

@file Administrative pages forms and functions for the HybridAuth module.

1 string reference to 'hybridauth_admin_settings'
hybridauth_menu in ./hybridauth.module
Implements hook_menu().

File

./hybridauth.admin.inc, line 8
Administrative pages forms and functions for the HybridAuth module.

Code

function hybridauth_admin_settings() {
  if (!variable_get('hybridauth_register', 0) && variable_get('user_register', 1) == 0) {
    drupal_set_message(t('Currently only administrators can create new user accounts. Either change the "Who can register accounts?" option under "Account settings" tab or at the core <a href="!link">Account settings</a>.', array(
      '!link' => url('admin/config/people/accounts'),
    )), 'warning');
  }
  $form = array();
  $form['fset_providers'] = array(
    '#type' => 'fieldset',
    '#title' => t('Authentication providers'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#theme' => 'hybridauth_admin_settings_providers_table',
    '#group' => 'fset_providers',
    '#attached' => array(
      'js' => array(
        'vertical-tabs' => drupal_get_path('module', 'hybridauth') . '/js/hybridauth.admin.js',
      ),
    ),
  );
  foreach (hybridauth_providers_list() as $provider_id => $provider_name) {
    $form['fset_providers'][$provider_id]['icon'] = array(
      '#value' => theme('hybridauth_provider_icon', 'hybridauth_16', $provider_id),
    );
    $form['fset_providers'][$provider_id]['hybridauth_provider_' . $provider_id . '_enabled'] = array(
      '#type' => 'checkbox',
      '#title' => $provider_name,
      '#default_value' => variable_get('hybridauth_provider_' . $provider_id . '_enabled', 0),
    );
    $form['fset_providers'][$provider_id]['file'] = array(
      '#value' => array_key_exists($provider_id, hybridauth_providers_files()) ? t('Yes') : t('No'),
    );
    $form['fset_providers'][$provider_id]['hybridauth_provider_' . $provider_id . '_weight'] = array(
      '#type' => 'weight',
      //'#title' => t('Weight'),
      '#delta' => 20,
      '#default_value' => variable_get('hybridauth_provider_' . $provider_id . '_weight', 0),
      '#attributes' => array(
        'class' => 'hybridauth-provider-weight',
      ),
    );
    $form['fset_providers'][$provider_id]['settings'] = array(
      '#value' => l(t('Settings'), 'admin/user/hybridauth/provider/' . $provider_id, array(
        'query' => drupal_get_destination(),
      )),
    );
  }
  $form['fset_fields'] = array(
    '#type' => 'fieldset',
    '#title' => t('Required information'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#group' => 'fset_fields',
  );
  $form['fset_fields']['hybridauth_required_fields'] = array(
    '#type' => 'checkboxes',
    '#title' => t('Required information'),
    '#options' => array(
      'email' => t('Email address'),
      'firstName' => t('First name'),
      'lastName' => t('Last name'),
      'gender' => t('Gender'),
    ),
    '#description' => t("Select required information. If authentication provider doesn't return it, visitor will need to fill additional form before registration."),
    '#default_value' => variable_get('hybridauth_required_fields', array(
      'email' => 'email',
    )),
  );
  $form['fset_widget'] = array(
    '#type' => 'fieldset',
    '#title' => t('Widget settings'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#group' => 'fset_widget',
  );
  $options = array(
    'popup' => t('Use a new popup window'),
    'current' => t('Use the current window'),
  );
  $form['fset_widget']['hybridauth_window_type'] = array(
    '#type' => 'radios',
    '#title' => t('Authentication window type'),
    '#options' => $options,
    '#default_value' => variable_get('hybridauth_window_type', 'popup'),
  );
  $form['fset_widget']['hybridauth_widget_title'] = array(
    '#type' => 'textfield',
    '#title' => t('Widget title'),
    '#default_value' => variable_get('hybridauth_widget_title', 'Or log in with...'),
  );
  $options = array(
    'list' => t('Enabled providers icons'),
    'button' => t('Single icon leading to a list of enabled providers'),
    'link' => t('Link leading to a list of enabled providers'),
  );
  $form['fset_widget']['hybridauth_widget_type'] = array(
    '#type' => 'radios',
    '#title' => t('Widget type'),
    '#options' => $options,
    '#default_value' => variable_get('hybridauth_widget_type', 'list'),
  );
  $form['fset_widget']['hybridauth_widget_use_overlay'] = array(
    '#type' => 'checkbox',
    '#title' => t('Display list of enabled providers in an overlay'),
    '#default_value' => variable_get('hybridauth_widget_use_overlay', 1),
  );
  $form['fset_widget']['hybridauth_widget_link_text'] = array(
    '#type' => 'textfield',
    '#title' => t('Link text'),
    '#default_value' => variable_get('hybridauth_widget_link_text', 'Social network account'),
  );
  $form['fset_widget']['hybridauth_widget_link_title'] = array(
    '#type' => 'textfield',
    '#title' => t('Link or icon title'),
    '#default_value' => variable_get('hybridauth_widget_link_title', 'Social network account'),
  );
  $options = array();
  foreach (hybridauth_get_icon_packs() as $name => $icon_pack) {
    $options[$name] = $icon_pack['title'];
  }
  $form['fset_widget']['hybridauth_widget_icon_pack'] = array(
    '#type' => 'select',
    '#title' => t('Icon package'),
    '#options' => $options,
    '#default_value' => variable_get('hybridauth_widget_icon_pack', 'hybridauth_32'),
  );
  $form['fset_widget']['hybridauth_widget_weight'] = array(
    '#type' => 'weight',
    '#title' => t('Widget weight'),
    '#delta' => 100,
    '#description' => t('Determines the order of the elements on the form - heavier elements get positioned later.'),
    '#default_value' => variable_get('hybridauth_widget_weight', 100),
  );
  $form['fset_widget']['hybridauth_widget_hide_links'] = array(
    '#type' => 'checkbox',
    '#title' => t('Hide links'),
    '#description' => t('Remove href property from authentication provider links.'),
    '#default_value' => variable_get('hybridauth_widget_hide_links', 0),
  );
  $form['fset_account'] = array(
    '#type' => 'fieldset',
    '#title' => t('Account settings'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#group' => 'fset_account',
  );
  $core_settings = array(
    0 => t('Only site administrators can create new user accounts.'),
    1 => t('Visitors can create accounts and no administrator approval is required.'),
    2 => t('Visitors can create accounts but administrator approval is required.'),
  );
  $form['fset_account']['hybridauth_register'] = array(
    '#type' => 'radios',
    '#title' => t('Who can register accounts?'),
    '#options' => array(
      0 => t('Follow core') . ': ' . $core_settings[variable_get('user_register', 1)],
      1 => t('Visitors'),
      2 => t('Visitors, but administrator approval is required'),
    ),
    '#description' => t('Select who can register accounts through HybridAuth.') . ' ' . t('The core settings are available at <a href="!link">User settings</a>.', array(
      '!link' => url('admin/user/settings'),
    )),
    '#default_value' => variable_get('hybridauth_register', 0),
  );
  $core_settings = array(
    0 => t("Don't require e-mail verification"),
    1 => t('Require e-mail verification'),
  );
  $form['fset_account']['hybridauth_email_verification'] = array(
    '#type' => 'radios',
    '#title' => t('E-mail verification'),
    '#options' => array(
      0 => t('Follow core') . ': ' . $core_settings[variable_get('user_email_verification', TRUE)],
      1 => t('Require e-mail verification'),
      2 => t("Don't require e-mail verification"),
    ),
    '#description' => t('Select how to handle not verified e-mail addresses (authentication provider gives non-verified e-mail address).') . ' ' . t('The core settings are available at <a href="!link">User settings</a>.', array(
      '!link' => url('admin/user/settings'),
    )),
    '#default_value' => variable_get('hybridauth_email_verification', 0),
  );
  $form['fset_account']['hybridauth_pictures'] = array(
    '#type' => 'checkbox',
    '#title' => t('Save HybridAuth provided picture as user picture'),
    '#description' => t('Save pictures provided by HybridAuth as user pictures. Check the "Enable user pictures" option at <a href="!link">User settings</a> to make this option available.', array(
      '!link' => url('admin/user/settings'),
    )),
    '#default_value' => variable_get('hybridauth_pictures', 1),
    '#disabled' => !variable_get('user_pictures', 0),
  );
  $form['fset_account']['hybridauth_username'] = array(
    '#type' => 'textfield',
    '#title' => t('Username pattern'),
    '#default_value' => variable_get('hybridauth_username', '[firstName] [lastName]'),
    '#description' => t('Create username for new users using this pattern; counter will be added in case of username conflict.') . ' ' . t('You should use only HybridAuth tokens here as the user is not created yet.') . ' ' . t('Install !link module to get list of all available tokens.', array(
      '!link' => l(t('Token'), 'http://drupal.org/project/token', array(
        'attributes' => array(
          'target' => '_blank',
        ),
      )),
    )),
    '#required' => TRUE,
  );
  if (module_exists('token')) {
    $form['fset_account']['fset_token_username'] = array(
      '#type' => 'fieldset',
      '#title' => t('Replacement patterns'),
      '#collapsible' => TRUE,
      '#collapsed' => TRUE,
    );
    $form['fset_account']['fset_token_username']['hybridauth_token_tree'] = array(
      '#value' => theme('token_tree', array(
        'hybridauth',
      ), FALSE),
    );
  }
  $form['fset_account']['hybridauth_registration_username_change'] = array(
    '#type' => 'checkbox',
    '#title' => t('Allow username change when registering'),
    '#description' => t('Allow users to change their username when registering through HybridAuth.'),
    '#default_value' => variable_get('hybridauth_registration_username_change', 0),
  );

  /*$form['fset_account']['hybridauth_display_name'] = array(
      '#type' => 'textfield',
      '#title' => t('Display name pattern'),
      '#default_value' => variable_get('hybridauth_display_name', '[hybridauth_firstName] [hybridauth_lastName]'),
      '#description' => t('You can use any user tokens here.') . ' '
        . t('Install !link module to get list of all available tokens.',
          array('!link' => l(t('Token'), 'http://drupal.org/project/token', array('attributes' => array('target' => '_blank'))))),
      '#required' => TRUE,
    );
    if (module_exists('token')) {
      $form['fset_account']['fset_token_display_name'] = array(
        '#type' => 'fieldset',
        '#title' => t('Replacement patterns'),
        '#collapsible' => TRUE,
        '#collapsed' => TRUE,
      );
      $form['fset_account']['fset_token_display_name']['hybridauth_token_tree'] = array(
        '#value' => theme('token_tree', array('user'), FALSE),
      );
    }*/

  /*$form['fset_account']['hybridauth_override_realname'] = array(
      '#type' => 'checkbox',
      '#title' => t('Override Real name'),
      '#description' => t('Override <a href="!link1">Real name settings</a> using the above display name pattern for users created by HybridAuth. This option is available only if !link2 module is installed.',
        array('!link1' => url('admin/config/people/realname'),
          '!link2' => l(t('Real name'), 'http://drupal.org/project/realname', array('attributes' => array('target' => '_blank'))))),
      '#default_value' => variable_get('hybridauth_override_realname', 0),
      '#disabled' => !module_exists('realname'),
    );*/
  $form['fset_account']['hybridauth_disable_username_change'] = array(
    '#type' => 'checkbox',
    '#title' => t('Disable username change'),
    '#description' => t('Remove username field from user account edit form for users created by HybridAuth.' . ' If this is unchecked then users should also have "Change own username" permission to actually be able to change the username.'),
    '#default_value' => variable_get('hybridauth_disable_username_change', 1),
  );
  $form['fset_account']['hybridauth_remove_password_fields'] = array(
    '#type' => 'checkbox',
    '#title' => t('Remove password fields'),
    '#description' => t('Remove password fields from user account edit form for users created by HybridAuth.'),
    '#default_value' => variable_get('hybridauth_remove_password_fields', 1),
  );
  $form['fset_other'] = array(
    '#type' => 'fieldset',
    '#title' => t('Other settings'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#group' => 'fset_other',
  );
  $form['fset_other']['hybridauth_destination'] = array(
    '#type' => 'textfield',
    '#title' => t('Redirect after login'),
    '#default_value' => variable_get('hybridauth_destination', ''),
    '#description' => t('Drupal path to redirect to, like "node/1". Leave empty to return to the same page.') . ' ' . t('You can use any user or global tokens here.') . ' ' . t('Install !link module to get list of all available tokens.', array(
      '!link' => l(t('Token'), 'http://drupal.org/project/token', array(
        'attributes' => array(
          'target' => '_blank',
        ),
      )),
    )),
  );
  if (module_exists('token')) {
    $form['fset_other']['fset_token'] = array(
      '#type' => 'fieldset',
      '#title' => t('Replacement patterns'),
      '#collapsible' => TRUE,
      '#collapsed' => TRUE,
    );
    $form['fset_other']['fset_token']['hybridauth_token_tree'] = array(
      '#value' => theme('token_tree', array(
        'user',
      ), TRUE),
    );
  }
  $form['fset_other']['hybridauth_forms'] = array(
    '#type' => 'checkboxes',
    '#title' => t('Drupal forms'),
    '#options' => array(
      'user_login' => t('User login form'),
      'user_login_block' => t('User login block'),
      'user_register' => t('User registration form'),
      'comment_form' => t('Comment form'),
    ),
    '#description' => t('Add default HybridAuth widget to these forms.'),
    '#default_value' => variable_get('hybridauth_forms', array(
      'user_login',
      'user_login_block',
    )),
  );
  $form['fset_other']['hybridauth_duplicate_emails'] = array(
    '#type' => 'radios',
    '#title' => t('Duplicate emails'),
    '#options' => array(
      0 => t('Allow duplicate email addresses, create new user account and login'),
      1 => t("Don't allow duplicate email addresses, block registration and advise to login using the existing account"),
      2 => t("Don't allow duplicate email addresses, add new identity to the existing account and login"),
    ),
    '#default_value' => variable_get('hybridauth_duplicate_emails', 1),
    '#description' => t('Select how to handle duplicate email addresses. This situation occurs when the same user is trying to authenticate using different authentication providers, but with the same email address.'),
  );
  $form['fset_other']['hybridauth_debug'] = array(
    '#type' => 'checkbox',
    '#title' => t('Debug mode'),
    '#description' => t('When in debug mode, extra error information will be logged/displayed. This should be disabled when not in development.'),
    '#default_value' => variable_get('hybridauth_debug', FALSE),
  );

  // Add vertical tabs display if available.
  $form['#pre_render'][] = 'vertical_tabs_form_pre_render';
  return system_settings_form($form);
}