You are here

function security_questions_user_insert in Security Questions 7

Same name and namespace in other branches
  1. 7.2 security_questions.module \security_questions_user_insert()

Implements hook_user_insert().

File

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

Code

function security_questions_user_insert(&$edit, $account, $category) {

  // During registration, the user will have no answers in the database,
  // so we can loop through all required questions.
  $number = variable_get('security_questions_number_required');
  $i = 1;

  // Insert the questions and answers into the database.
  while ($i <= $number) {
    if ($edit['security_question_id_' . $i] == 'other') {
      db_insert('security_questions')
        ->fields(array(
        'security_question' => $edit['security_question_user_question_' . $i],
        'uid' => $account->uid,
      ))
        ->execute();

      // Get the question id for the question we just put in, so we can store
      // the user's answer.
      $qid = db_query('SELECT security_question_id FROM {security_questions}
                       WHERE security_question = :question', array(
        ':question' => $edit['security_question_user_question_' . $i],
      ))
        ->fetchField();

      // Reset the question id for input into the answers table.
      $edit['security_question_id_' . $i] = $qid;
    }
    db_insert('security_questions_answers')
      ->fields(array(
      'uid' => $account->uid,
      'security_question_id' => $edit['security_question_id_' . $i],
      'user_answer' => $edit['security_question_user_answer_' . $i],
    ))
      ->execute();
    $i++;
  }
}