You are here

function security_questions_form_user_pass_alter in Security Questions 6.2

Same name and namespace in other branches
  1. 6 security_questions.module \security_questions_form_user_pass_alter()
  2. 7.2 security_questions.module \security_questions_form_user_pass_alter()
  3. 7 security_questions.module \security_questions_form_user_pass_alter()

Implements hook_form_FORM_ID_alter().

Adds a question challenge to the password reset form.

File

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

Code

function security_questions_form_user_pass_alter(&$form, &$form_state) {

  // Abort if the password form is not protected.
  if (!variable_get('security_questions_password_reset', FALSE)) {
    return;
  }

  // We need our own submission handler to make this a multistep form.
  $form['#submit'] = array(
    'security_questions_user_pass_submit',
  );

  // If our submit handler triggered a rebuild, we need to issue a challenge.
  $account = FALSE;
  if (!empty($form_state['storage']['security_questions']['uid'])) {
    $account = user_load($form_state['storage']['security_questions']['uid']);
  }
  if ($account) {
    $form += security_questions_challenge($account);
    $form['#validate'][] = 'security_questions_user_pass_answer_validate';
    $form['name']['#type'] = 'value';
    $form['name']['#value'] = $account->mail;
    $form['submit']['#weight'] = 10;
  }
}