FEATURE: Hide suspended users from site-wide search to regular users (#14245)

This commit is contained in:
Jean
2021-09-06 09:59:35 -04:00
committed by GitHub
parent 0c777825b3
commit 34ff7bfeeb
4 changed files with 40 additions and 6 deletions

View File

@@ -758,11 +758,11 @@ class Search
# calling protected methods
send("#{@results.type_filter}_search")
else
unless @search_context
user_search if @term.present?
category_search if @term.present?
tags_search if @term.present?
groups_search if @term.present?
if @term.present? && !@search_context
user_search
category_search
tags_search
groups_search
end
topic_search
end
@@ -832,6 +832,10 @@ class Search
.order("last_posted_at DESC")
.limit(limit)
if !SiteSetting.enable_listing_suspended_users_on_search && !@guardian.user&.admin
users = users.where(suspended_at: nil)
end
users_custom_data_query = DB.query(<<~SQL, user_ids: users.pluck(:id), term: "%#{@original_term.downcase}%")
SELECT user_custom_fields.user_id, user_fields.name, user_custom_fields.value FROM user_custom_fields
INNER JOIN user_fields ON user_fields.id = REPLACE(user_custom_fields.name, 'user_field_', '')::INTEGER AND user_fields.searchable IS TRUE