You are here

function security_questions_pass_reset_validate_account in Security Questions 6

Same name and namespace in other branches
  1. 7 security_questions.module \security_questions_pass_reset_validate_account()

Validation handler for security_questions_form_user_pass_alter().

1 string reference to 'security_questions_pass_reset_validate_account'
security_questions_form_user_pass_alter in ./security_questions.module
Implements hook_form_FORM_ID_alter() for user_pass().

File

./security_questions.module, line 1035
Main module file for security_questions.

Code

function security_questions_pass_reset_validate_account(&$form, &$form_state) {
  $errors = form_get_errors();
  if (!$errors) {

    // Taken from user_pass_validate().
    $name = trim($form_state['values']['name']);
    $account = user_load(array(
      'mail' => $name,
      'status' => 1,
    ));
    if (!$account) {

      // No success, try to load by name.
      $account = user_load(array(
        'name' => $name,
        'status' => 1,
      ));
    }
    $question = security_questions_get_random_question($account);

    // If the user has questions answered, we can rebuild the form and ask it.
    if ($question) {

      // Store account for later, and rebuild the form.
      $_SESSION['security_questions']['account'] = $account;
      $form_state['rebuild'] = TRUE;
    }
    else {
      user_pass_submit($form, $form_state);
      drupal_goto('user');
    }
  }
}