コード例 #1
0
            qa_db_user_set_flag($userid, QA_USER_FLAGS_USER_BLOCKED, false);
            qa_report_event('u_unblock', $loginuserid, qa_get_logged_in_handle(), qa_cookie_get(), array('userid' => $userid, 'handle' => $useraccount['handle']));
            qa_redirect(qa_request());
        }
        if (qa_clicked('dohideall') && !qa_user_permit_error('permit_hide_show')) {
            require_once QA_INCLUDE_DIR . 'qa-db-admin.php';
            require_once QA_INCLUDE_DIR . 'qa-app-posts.php';
            $postids = qa_db_get_user_visible_postids($userid);
            foreach ($postids as $postid) {
                qa_post_set_hidden($postid, true, $loginuserid);
            }
            qa_redirect(qa_request());
        }
        if (qa_clicked('dodelete') && $loginlevel >= QA_USER_LEVEL_ADMIN) {
            require_once QA_INCLUDE_DIR . 'qa-app-users-edit.php';
            qa_delete_user($userid);
            qa_report_event('u_delete', $loginuserid, qa_get_logged_in_handle(), qa_cookie_get(), array('userid' => $userid, 'handle' => $useraccount['handle']));
            qa_redirect('users');
        }
    }
}
//	Process bonus setting button
if ($loginlevel >= QA_USER_LEVEL_ADMIN && qa_clicked('dosetbonus')) {
    require_once QA_INCLUDE_DIR . 'qa-db-points.php';
    qa_db_points_set_bonus($userid, (int) qa_post_text('bonus'));
    qa_db_points_update_ifuser($userid, null);
    qa_redirect(qa_request(), null, null, null, 'activity');
}
//	Get information on user references in answers and other stuff need for page
$pagesize = qa_opt('page_size_user_posts');
$questions = qa_any_sort_and_dedupe(array_merge($questions, $answerqs, $commentqs, $editqs));
コード例 #2
0
 function check_merge(&$useraccount, &$mylogins, $tolink)
 {
     global $qa_cached_logged_in_user, $qa_logged_in_userid_checked;
     $userid = $findid = $useraccount['userid'];
     $findemail = $useraccount['oemail'];
     // considering this is an openid user, so use the openid email
     if (empty($findemail)) {
         $findemail = $useraccount['email'];
         // fallback
     }
     if ($tolink) {
         // user is logged in with $userid but wants to merge $findid
         $findemail = null;
         $findid = $tolink['userid'];
     } else {
         if (qa_get('confirm') == 2 || qa_post_text('confirm') == 2) {
             // bogus confirm page, stop right here
             qa_redirect('logins');
         }
     }
     // find other un-linked accounts with the same email
     $otherlogins = qa_db_user_login_find_other__open($findid, $findemail, $userid);
     if (qa_clicked('domerge') && !empty($otherlogins)) {
         // if cancel was requested, just redirect
         if ($_POST['domerge'] == 0) {
             $tourl = qa_post_text('to');
             if (!empty($tourl)) {
                 qa_redirect($tourl);
             } else {
                 qa_redirect($tolink ? 'logins' : '');
             }
         }
         // a request to merge (link) multiple accounts was made
         require_once QA_INCLUDE_DIR . 'qa-app-users-edit.php';
         $recompute = false;
         $email = null;
         $baseid = $_POST["base{$_POST['domerge']}"];
         // POST[base1] or POST[base2]
         // see which account was selected, if any
         if ($baseid != 0) {
             // just in case
             foreach ($otherlogins as $login) {
                 // see if this is the currently logged in account
                 $loginid = $login['details']['userid'];
                 $is_current = $loginid == $userid;
                 // see if this user was selected for merge
                 if (isset($_POST["user_{$loginid}"]) || $is_current) {
                     if ($baseid != $loginid) {
                         // this account should be deleted as it's different from the selected base id
                         if (!empty($login['logins'])) {
                             // update all associated logins
                             qa_db_user_login_sync(true);
                             qa_db_user_login_replace_userid__open($loginid, $baseid);
                             qa_db_user_login_sync(false);
                         }
                         // delete old user but keep the email
                         qa_delete_user($loginid);
                         $recompute = true;
                         if (empty($email)) {
                             $email = $login['details']['email'];
                         }
                         if (empty($email)) {
                             $email = $login['details']['oemail'];
                         }
                     }
                 }
             }
         }
         // recompute the stats, if needed
         if ($recompute) {
             require_once QA_INCLUDE_DIR . 'qa-db-points.php';
             qa_db_userpointscount_update();
             // check if the current account has been deleted
             if ($userid != $baseid) {
                 $oldsrc = $useraccount['sessionsource'];
                 qa_set_logged_in_user($baseid, $useraccount['handle'], false, $oldsrc);
                 $useraccount = qa_db_user_find_by_id__open($baseid);
                 $userid = $baseid;
                 // clear some cached data
                 qa_db_flush_pending_result('loggedinuser');
                 $qa_logged_in_userid_checked = false;
                 unset($qa_cached_logged_in_user);
             }
             // also check the email address on the remaining user account
             if (empty($useraccount['email']) && !empty($email)) {
                 // update the account if the email address is not used anymore
                 $emailusers = qa_db_user_find_by_email($email);
                 if (count($emailusers) == 0) {
                     qa_db_user_set($userid, 'email', $email);
                     $useraccount['email'] = $email;
                     // to show on the page
                 }
             }
         }
         $conf = qa_post_text('confirm');
         $tourl = qa_post_text('to');
         if ($conf) {
             $tourl = qa_post_text('to');
             if (!empty($tourl)) {
                 qa_redirect($tourl);
             } else {
                 qa_redirect($tolink ? 'logins' : '');
             }
         }
         // update the arrays
         $otherlogins = qa_db_user_login_find_other__open($userid, $findemail);
         $mylogins = qa_db_user_login_find_mine__open($userid);
     }
     // remove the current user id
     unset($otherlogins[$userid]);
     return $otherlogins;
 }