From bc5ca71bdf3a6b6b85b1f0f21a3110d9ccaf41e7 Mon Sep 17 00:00:00 2001 From: evazion Date: Sun, 20 Nov 2022 23:45:50 -0600 Subject: [PATCH] search: fix post count caching for the `date:` metatag. The `date:` metatag depends on the current user's time zone, so the post count for `date:` searches needs to be cached separately for different users, otherwise it could lead to incorrect page counts if two users with different time zones search for the same `date:` metatag at the same time. --- app/logical/post_query.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/logical/post_query.rb b/app/logical/post_query.rb index 2a3f08fc5..73476093b 100644 --- a/app/logical/post_query.rb +++ b/app/logical/post_query.rb @@ -138,7 +138,8 @@ class PostQuery # True if the search depends on the current user because of permissions or privacy settings. def is_user_dependent_search? metatags.any? do |metatag| - metatag.name.in?(%w[upvoter upvote downvoter downvote commenter comm search flagger fav ordfav favgroup ordfavgroup]) || + # XXX date: is user dependent because it depends on the current user's time zone + metatag.name.in?(%w[date upvoter upvote downvoter downvote commenter comm search flagger fav ordfav favgroup ordfavgroup]) || metatag.name == "status" && metatag.value == "unmoderated" || metatag.name == "disapproved" && !metatag.value.downcase.in?(PostDisapproval::REASONS) end