users: add 'show deleted posts' account setting.
Add an account setting to always show deleted posts in searches. This only applies to searches, not to thumbnails in other places. Fixes #4512.
This commit is contained in:
@@ -12,11 +12,12 @@ module PostSets
|
||||
MAX_SIDEBAR_TAGS = 25
|
||||
MAX_WILDCARD_TAGS = PostQueryBuilder::MAX_WILDCARD_TAGS
|
||||
|
||||
attr_reader :page, :format, :tag_string, :query, :post_query, :normalized_query, :show_votes
|
||||
attr_reader :current_user, :page, :format, :tag_string, :query, :post_query, :normalized_query, :show_votes
|
||||
delegate :tag, to: :post_query
|
||||
alias_method :show_votes?, :show_votes
|
||||
|
||||
def initialize(tags, page = 1, per_page = nil, user: CurrentUser.user, format: "html", show_votes: false)
|
||||
@current_user = user
|
||||
@query = PostQueryBuilder.new(tags, user, tag_limit: user.tag_query_limit, safe_mode: CurrentUser.safe_mode?)
|
||||
@post_query = PostQuery.normalize(tags, current_user: user, tag_limit: user.tag_query_limit, safe_mode: CurrentUser.safe_mode?)
|
||||
@normalized_query = post_query.with_implicit_metatags
|
||||
@@ -134,6 +135,10 @@ module PostSets
|
||||
end
|
||||
|
||||
def show_deleted?
|
||||
current_user.show_deleted_posts? || has_status_metatag?
|
||||
end
|
||||
|
||||
def has_status_metatag?
|
||||
post_query.select_metatags("status").any? do |metatag|
|
||||
metatag.value.downcase.in?(%w[all any active unmoderated modqueue deleted appealed])
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user