You are here

function security_questions_user_pass_answer_validate in Security Questions 6.2

Same name and namespace in other branches
  1. 7.2 security_questions.module \security_questions_user_pass_answer_validate()

Validation handler for security_questions_form_user_pass_alter().

1 string reference to 'security_questions_user_pass_answer_validate'
security_questions_form_user_pass_alter in ./security_questions.module
Implements hook_form_FORM_ID_alter().

File

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

Code

function security_questions_user_pass_answer_validate($form, &$form_state) {

  // @todo Can security_questions_user_pass_answer_validate() be combined with security_questions_user_login_answer_validate()?
  // user_pass_validate() adds the 'account' value on a successful load.
  if (!empty($form_state['values']['account'])) {
    $account = $form_state['values']['account'];
    $sqid = $form_state['values']['question'];
    $answer = _security_questions_clean_answer($form_state['values']['answer']);
    $valid_answer = _security_questions_clean_answer(security_questions_get_answer($account->uid, $sqid));
    $form_state['storage']['security_questions']['passed_challenge'] = $valid_answer == $answer;

    // If the answer was correct, flush the flood event.
    if ($form_state['storage']['security_questions']['passed_challenge']) {
      security_questions_flush_incorrect($account->uid);
    }
    else {
      drupal_set_message(t('That answer does not match the one on the user account. Please try again with a different question.'), 'error');
      security_questions_register_incorrect($sqid, $account->uid);
    }
  }
}