function hybridauth_user_register_submit in HybridAuth Social Login 7
Custom submit handler for the standard user_register form.
1 string reference to 'hybridauth_user_register_submit'
- hybridauth_form_user_register_form_alter in ./
hybridauth.module - Implements hook_form_FORM_ID_alter().
File
- ./
hybridauth.module, line 378
Code
function hybridauth_user_register_submit($form, &$form_state) {
form_state_values_clean($form_state);
$pass = user_password();
$form_state['values']['pass'] = $pass;
$form_state['values']['init'] = $form_state['values']['mail'];
$account = $form['#user'];
$category = $form['#user_category'];
$account_unchanged = clone $account;
entity_form_submit_build_entity('user', $account, $form, $form_state);
$edit = array_intersect_key((array) $account, $form_state['values']);
$account = user_save($account_unchanged, $edit, $category);
// Add the HybridAuth data to the account.
$account = _hybridauth_populate_user_record($account, $_SESSION['hybridauth']);
// Terminate if an error occurred during user_save().
if (!$account) {
drupal_set_message(t("Error saving user account."), 'error');
$form_state['redirect'] = '';
return;
}
// Add the 3rd party profile picture to the account.
$account = _hybridauth_save_profile_picture($account);
watchdog('hybridauth', 'New user: %name (%email).', array(
'%name' => $form_state['values']['name'],
'%email' => $form_state['values']['mail'],
), WATCHDOG_NOTICE, l(t('edit'), 'user/' . $account->uid . '/edit'));
$form_state['user'] = $account;
$form_state['values']['uid'] = $account->uid;
// Add plain text password into user account to generate mail tokens.
$account->password = $pass;
// If no email verification required, log the user in immediately.
if ((!variable_get('user_email_verification', TRUE) || variable_get('hybridauth_bypass_email_verification', FALSE) || !empty($_SESSION['hybridauth']['profile']['verifiedEmail']) && strtolower($account->mail) == strtolower($_SESSION['hybridauth']['profile']['verifiedEmail'])) && $account->status) {
_user_mail_notify('register_no_approval_required', $account);
$form_state['uid'] = $account->uid;
user_login_submit(array(), $form_state);
drupal_set_message(t('Registration successful. You are now logged in.'));
}
elseif ($account->status) {
// Require email confirmation
drupal_mail('hybridauth', 'hybridauth_confirm_email', $account->mail, user_preferred_language($account), array(
'account' => $account,
));
drupal_set_message(t('In order to confirm your email address, an email has been sent to you with confirmation instructions.'));
}
else {
_user_mail_notify('register_pending_approval', $account);
drupal_set_message(t('Thank you for applying for an account. Your account is currently pending approval by the site administrator.<br />In the meantime, a welcome message with further instructions has been sent to your e-mail address.'));
}
$form_state['redirect'] = '';
}