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');
Example #2
0
    }
    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) {
Example #3
0
}
//	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);
                    }