list($useraccount, $userprofile, $userpoints, $userfields) = qa_db_select_with_pending(qa_db_user_account_selectspec($qa_login_userid, true), qa_db_user_profile_selectspec($qa_login_userid, true), qa_db_user_points_selectspec($qa_login_userid, true), qa_db_userfields_selectspec()); $changehandle = qa_opt('allow_change_usernames') || !$userpoints['qposts'] && !$userpoints['aposts'] && !$userpoints['cposts']; $doconfirms = qa_opt('confirm_user_emails') && $useraccount['level'] < QA_USER_LEVEL_EXPERT; $isconfirmed = $useraccount['flags'] & QA_USER_FLAGS_EMAIL_CONFIRMED ? true : false; $haspassword = isset($useraccount['passsalt']) && isset($useraccount['passcheck']); // Process profile if saved if (qa_clicked('dosaveprofile')) { require_once QA_INCLUDE_DIR . 'qa-app-users-edit.php'; $inhandle = $changehandle ? qa_post_text('handle') : $useraccount['handle']; $inemail = qa_post_text('email'); $inmessages = qa_post_text('messages'); $inavatar = qa_post_text('avatar'); $innotifyan = qa_post_text('notify_an'); $innotifyq = qa_post_text('notify_q'); $innotifya = qa_post_text('notify_a'); $errors = qa_handle_email_validate($inhandle, $inemail, $qa_login_userid); if (!isset($errors['handle'])) { qa_db_user_set($qa_login_userid, 'handle', $inhandle); } if (!isset($errors['email'])) { if ($inemail != $useraccount['email']) { qa_db_user_set($qa_login_userid, 'email', $inemail); qa_db_user_set_flag($qa_login_userid, QA_USER_FLAGS_EMAIL_CONFIRMED, false); $isconfirmed = false; if ($doconfirms) { qa_send_new_confirm($qa_login_userid); } } } qa_db_user_set_flag($qa_login_userid, QA_USER_FLAGS_NO_MESSAGES, !$inmessages); qa_db_user_set_flag($qa_login_userid, QA_USER_FLAGS_SHOW_AVATAR, $inavatar == 'uploaded');
} if (qa_clicked('upgrade')) { qa_db_upgrade_tables(); $success .= 'Your Question2Answer database has been updated.'; } if (qa_clicked('repair')) { qa_db_install_tables(); $success .= 'The Question2Answer database tables have been repaired.'; } if (qa_clicked('super')) { require_once QA_INCLUDE_DIR . 'qa-db-users.php'; require_once QA_INCLUDE_DIR . 'qa-app-users-edit.php'; $inemail = qa_post_text('email'); $inpassword = qa_post_text('password'); $inhandle = qa_post_text('handle'); $fielderrors = array_merge(qa_handle_email_validate($inhandle, $inemail), qa_password_validate($inpassword)); if (empty($fielderrors)) { require_once QA_INCLUDE_DIR . 'qa-app-users.php'; $userid = qa_create_new_user($inemail, $inpassword, $inhandle, QA_USER_LEVEL_SUPER); qa_set_logged_in_user($userid, $inhandle); qa_set_option('feedback_email', $inemail); $success .= "Congratulations - Your Question2Answer site is ready to go!\n\nYou are logged in as the super administrator and can start changing settings.\n\nThank you for installing Question2Answer."; } } } if (is_resource(qa_db_connection()) && !@$pass_failure_from_install) { $check = qa_db_check_tables(); // see where the database is at switch ($check) { case 'none': if (@$pass_failure_errno == 1146) {
} // Process edit or save button for user if (!QA_FINAL_EXTERNAL_USERS) { $reloaduser = false; if ($usereditbutton) { if (qa_clicked('docancel')) { qa_redirect($qa_request); } elseif (qa_clicked('doedit')) { qa_redirect($qa_request, array('state' => 'edit')); } elseif (qa_clicked('dosave')) { require_once QA_INCLUDE_DIR . 'qa-app-users-edit.php'; require_once QA_INCLUDE_DIR . 'qa-db-users.php'; $errors = array(); if ($fieldseditable) { $inemail = qa_post_text('email'); $errors = qa_handle_email_validate($handle, $inemail, $userid); if (!isset($errors['email'])) { if ($inemail != $useraccount['email']) { qa_db_user_set($userid, 'email', $inemail); qa_db_user_set_flag($userid, QA_USER_FLAGS_EMAIL_CONFIRMED, false); } } $infield = array(); foreach ($userfields as $userfield) { $fieldname = 'field_' . $userfield['fieldid']; $fieldvalue = qa_post_text($fieldname); $infield[$fieldname] = $fieldvalue; qa_profile_field_validate($fieldname, $fieldvalue, $errors); if (!isset($errors[$fieldname])) { qa_db_user_profile_set($userid, $userfield['title'], $fieldvalue); }