Created function get_banned_users() (#878)

This commit is contained in:
Roman Kelesidis 2023-09-02 10:28:31 +07:00 committed by GitHub
commit 7281480b0f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 19 deletions

View file

@ -34,15 +34,6 @@ if ($t_data['seeders'] > 2) {
$this->ajax_die(sprintf($lang['CALLSEED_MSG_SPAM'], $time_left)); $this->ajax_die(sprintf($lang['CALLSEED_MSG_SPAM'], $time_left));
} }
$ban_user_id = [];
$sql = DB()->fetch_rowset("SELECT ban_userid FROM " . BB_BANLIST . " WHERE ban_userid != 0");
foreach ($sql as $row) {
$ban_user_id[] = ',' . $row['ban_userid'];
}
$ban_user_id = implode('', $ban_user_id);
$user_list = DB()->fetch_rowset(" $user_list = DB()->fetch_rowset("
SELECT DISTINCT dl.user_id, u.user_opt, tr.user_id as active_dl SELECT DISTINCT dl.user_id, u.user_opt, tr.user_id as active_dl
FROM " . BB_BT_DLSTATUS . " dl FROM " . BB_BT_DLSTATUS . " dl
@ -50,7 +41,7 @@ $user_list = DB()->fetch_rowset("
LEFT JOIN " . BB_BT_TRACKER . " tr ON(tr.user_id = dl.user_id) LEFT JOIN " . BB_BT_TRACKER . " tr ON(tr.user_id = dl.user_id)
WHERE dl.topic_id = $topic_id WHERE dl.topic_id = $topic_id
AND dl.user_status IN (" . DL_STATUS_COMPLETE . ", " . DL_STATUS_DOWN . ") AND dl.user_status IN (" . DL_STATUS_COMPLETE . ", " . DL_STATUS_DOWN . ")
AND dl.user_id NOT IN ({$userdata['user_id']}, " . EXCLUDED_USERS . $ban_user_id . ") AND dl.user_id NOT IN ({$userdata['user_id']}, " . EXCLUDED_USERS . implode(', ', get_banned_users()) . ")
AND u.user_active = 1 AND u.user_active = 1
GROUP BY dl.user_id GROUP BY dl.user_id
"); ");

View file

@ -59,6 +59,23 @@ function get_tracks($type)
return $tracks ?: []; return $tracks ?: [];
} }
/**
* Returns array with all banned users
*
* @param bool $return_as_names
* @return array
*/
function get_banned_users(bool $return_as_names = false): array
{
$banned_users = [];
foreach (DB()->fetch_rowset("SELECT ban_userid FROM " . BB_BANLIST . " WHERE ban_userid != 0") as $user) {
$banned_users[] = $return_as_names ? get_username($user['ban_userid']) : $user['ban_userid'];
}
return $banned_users;
}
function set_tracks($cookie_name, &$tracking_ary, $tracks = null, $val = TIMENOW) function set_tracks($cookie_name, &$tracking_ary, $tracks = null, $val = TIMENOW)
{ {
global $tracking_topics, $tracking_forums, $user; global $tracking_topics, $tracking_forums, $user;

View file

@ -343,19 +343,12 @@ class Post
if ($mode != 'delete') { if ($mode != 'delete') {
if ($mode == 'reply') { if ($mode == 'reply') {
$update_watched_sql = $user_id_sql = []; $update_watched_sql = [];
$sql = DB()->fetch_rowset("SELECT ban_userid FROM " . BB_BANLIST . " WHERE ban_userid != 0");
foreach ($sql as $row) {
$user_id_sql[] = ',' . $row['ban_userid'];
}
$user_id_sql = implode('', $user_id_sql);
$watch_list = DB()->fetch_rowset("SELECT u.username, u.user_id, u.user_email, u.user_lang $watch_list = DB()->fetch_rowset("SELECT u.username, u.user_id, u.user_email, u.user_lang
FROM " . BB_TOPICS_WATCH . " tw, " . BB_USERS . " u FROM " . BB_TOPICS_WATCH . " tw, " . BB_USERS . " u
WHERE tw.topic_id = $topic_id WHERE tw.topic_id = $topic_id
AND tw.user_id NOT IN (" . $userdata['user_id'] . ", " . EXCLUDED_USERS . $user_id_sql . ") AND tw.user_id NOT IN (" . $userdata['user_id'] . ", " . EXCLUDED_USERS . implode(', ', get_banned_users()) . ")
AND tw.notify_status = " . TOPIC_WATCH_NOTIFIED . " AND tw.notify_status = " . TOPIC_WATCH_NOTIFIED . "
AND u.user_id = tw.user_id AND u.user_id = tw.user_id
AND u.user_active = 1 AND u.user_active = 1