function security_questions_user_answers_save in Security Questions 6.2
Same name and namespace in other branches
- 7.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 in ./
security_questions.module - Implements hook_user().
- security_questions_user_form_submit in ./
security_questions.pages.inc - Submission handler for the user's security questions form.
File
- ./
security_questions.module, line 735 - Main module file for security_questions.
Code
function security_questions_user_answers_save($account, &$edit) {
// Delete all existing answers for this user.
db_query('DELETE FROM {security_questions_answers} WHERE uid = %d', array(
$account->uid,
));
$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_query('DELETE FROM {security_questions} WHERE uid = %d AND sqid NOT IN (' . db_placeholders($chosen) . ')', array_merge(array(
$account->uid,
), $chosen));
}