You are here

function security_questions_user_answers_save in Security Questions 6.2

Same name and namespace in other branches
  1. 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));
}