Merge pull request #3245 from evazion/fix-2344

Fix #2344: Negating status metatag breaks deleted post filter.
This commit is contained in:
Albert Yi
2017-07-31 12:50:21 -07:00
committed by GitHub
2 changed files with 22 additions and 1 deletions

View File

@@ -84,6 +84,14 @@ class PostQueryBuilder
relation
end
def hide_deleted_posts?(q)
return false if CurrentUser.admin_mode?
return false if !CurrentUser.user.hide_deleted_posts?
return false if q[:status].in?(%w[deleted active])
return false if q[:status_neg].in?(%w[deleted active])
return true
end
def build(relation = nil)
unless query_string.is_a?(Hash)
q = Tag.parse_query(query_string)
@@ -144,7 +152,9 @@ class PostQueryBuilder
relation = relation.where("posts.is_banned = FALSE")
elsif q[:status_neg] == "active"
relation = relation.where("posts.is_pending = TRUE OR posts.is_deleted = TRUE OR posts.is_banned = TRUE")
elsif CurrentUser.user.hide_deleted_posts? && !CurrentUser.admin_mode?
end
if hide_deleted_posts?(q)
relation = relation.where("posts.is_deleted = FALSE")
end