function social_auth_extra_form_user_register_form_alter in Open Social 8.5
Same name and namespace in other branches
- 8.9 modules/custom/social_auth_extra/social_auth_extra.module \social_auth_extra_form_user_register_form_alter()
- 8 modules/custom/social_auth_extra/social_auth_extra.module \social_auth_extra_form_user_register_form_alter()
- 8.2 modules/custom/social_auth_extra/social_auth_extra.module \social_auth_extra_form_user_register_form_alter()
- 8.3 modules/custom/social_auth_extra/social_auth_extra.module \social_auth_extra_form_user_register_form_alter()
- 8.4 modules/custom/social_auth_extra/social_auth_extra.module \social_auth_extra_form_user_register_form_alter()
- 8.6 modules/custom/social_auth_extra/social_auth_extra.module \social_auth_extra_form_user_register_form_alter()
- 8.7 modules/custom/social_auth_extra/social_auth_extra.module \social_auth_extra_form_user_register_form_alter()
- 8.8 modules/custom/social_auth_extra/social_auth_extra.module \social_auth_extra_form_user_register_form_alter()
Implements hook_form_FORM_ID_alter().
File
- modules/
custom/ social_auth_extra/ social_auth_extra.module, line 18 - Contains social_auth_extra.module.
Code
function social_auth_extra_form_user_register_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if ($social_buttons = _social_auth_extra_get_buttons('register')) {
$form += $social_buttons;
}
$request = \Drupal::request();
if ($provider = $request
->get('provider')) {
$network_manager = \Drupal::service('plugin.network.manager');
$networks = $network_manager
->getDefinitions();
foreach ($networks as $network) {
$instance = $network_manager
->createInstance($network['id']);
if ($instance
->isActive() && $instance
->getSocialNetworkKey() == $provider) {
$form_state
->set('network_instance', $instance);
$data_handler = $instance
->getDataHandler();
// Get the username from social network if it possible.
if (($sdk = $network_manager
->createInstance($network['id'])
->getSdk()) && ($access_token = $instance
->getDataHandler()
->get('access_token'))) {
$auth_manager = \Drupal::service($network['id'] . '.auth_manager');
$auth_manager
->setSdk($sdk);
$auth_manager
->setAccessToken($access_token);
$name = $auth_manager
->getUsername();
}
// If username is not given from social network, generate it based on
// first name and last name.
if (empty($name)) {
// Translate to lowercase and remove unnecessary symbols.
$name = Unicode::strtolower($data_handler
->get('name'));
$name = \Drupal::transliteration()
->transliterate($name);
$name = str_replace(' ', ' ', $name);
$name = preg_replace('/[^0-9a-z]/si', '_', $name);
}
// The user already selected an authentication method and there
// will be a drupal_set_message informing the user.
unset($form['social_auth_extra']);
unset($form['account']['title']);
$form['account']['mail']['#default_value'] = $data_handler
->get('mail');
$form['account']['name']['#default_value'] = $name;
$form['actions']['submit']['#submit'] = [
'social_auth_extra_form_user_register_form_submit',
];
break;
}
}
}
}