function security_questions_form_user_pass_alter in Security Questions 7
Same name and namespace in other branches
- 6.2 security_questions.module \security_questions_form_user_pass_alter()
- 6 security_questions.module \security_questions_form_user_pass_alter()
- 7.2 security_questions.module \security_questions_form_user_pass_alter()
Implements hook_form_FORM_ID_alter() for user_pass().
File
- ./
security_questions.module, line 988 - Main module file for security_questions.
Code
function security_questions_form_user_pass_alter(&$form, &$form_state, $form_id = 'user_pass') {
$pass_reset = variable_get('security_questions_password_reset');
if ($pass_reset) {
if (empty($form_state['security_questions']['account'])) {
unset($form['#submit']);
$form['#validate'][] = 'security_questions_pass_reset_validate_account';
}
else {
$form['name']['#type'] = 'hidden';
$form['name']['#value'] = $form_state['values']['name'];
// Retrieve account from form_state (put there by our validation function).
$account = $form_state['security_questions']['account'];
// Get a random question for this user.
$question = security_questions_get_random_question($account);
// If there is no question, hide the security question fields.
// Can happen if module is implemented after users are already registered.
// We will account for this after login.
if ($question) {
// Store question id for answer lookup during validation.
$_SESSION['security_question'] = $question->security_question_id;
// Show answer element.
$form['security_question'] = array(
'#type' => 'fieldset',
'#title' => t('Security Question'),
'#weight' => -2,
);
$form['security_question']['question'] = array(
'#markup' => '<div>' . t(check_plain($question->security_question)) . '</div>',
);
$form['security_question']['security_answer'] = array(
'#type' => 'textfield',
'#title' => t('Answer'),
'#required' => TRUE,
);
// Add our validation handler.
$form['#validate'] = array(
'security_questions_pass_reset_validate_answer',
);
}
}
}
}