function security_questions_user_answers_save in Security Questions 7.2
Same name and namespace in other branches
- 6.2 security_questions.module \security_questions_user_answers_save()
Saves a full set of answers and custom questions for a user.
Parameters
$account: The user account object.
&$edit: The submitted question and answer values from the user form.
See also
security_questions_user_form()
2 calls to security_questions_user_answers_save()
- security_questions_user_form_submit in ./
security_questions.pages.inc - Submission handler for the user's security questions form.
- security_questions_user_insert in ./
security_questions.module - Implements hook_user_insert().
File
- ./
security_questions.module, line 710 - Main module file for security_questions.
Code
function security_questions_user_answers_save($account, &$edit) {
// Delete all existing answers for this user.
db_delete('security_questions_answers')
->condition('uid', $account->uid)
->execute();
$chosen = array();
foreach ($edit as $question) {
// Save new custom questions.
if ($question['question'] == 'other') {
$sqid = security_questions_add_question($question['custom_question'], $account->uid);
if ($sqid) {
$question['question'] = $sqid;
}
else {
// If the custom question could not be saved, skip.
continue;
}
}
$chosen[] = $question['question'];
// Save new answers.
security_questions_answer_save($account->uid, $question['question'], $question['answer']);
}
// Clean-up unused custom questions.
db_delete('security_questions')
->condition('uid', $account->uid)
->condition('sqid', $chosen, 'NOT IN')
->execute();
if (module_exists('rules')) {
rules_invoke_event('security_questions_updated_answers', $account);
}
}