Fix #4280: Sidebar taglist is shown for status:unmoderated even when empty.

Fix the related tags sidebar to cache user-dependent searches separately
for each user.
This commit is contained in:
evazion
2020-05-08 15:43:52 -05:00
parent 2749269d5b
commit 8dedce0944

View File

@@ -37,10 +37,18 @@ module RelatedTagCalculator
end
def self.cached_similar_tags_for_search(post_query, max_tags, search_timeout: 2000, cache_timeout: 8.hours)
Cache.get("similar_tags:#{post_query.to_s}", cache_timeout, race_condition_ttl: 60.seconds) do
Cache.get(cache_key(post_query), cache_timeout, race_condition_ttl: 60.seconds) do
ApplicationRecord.with_timeout(search_timeout, []) do
similar_tags_for_search(post_query).take(max_tags).pluck(:name)
end
end
end
def self.cache_key(post_query)
if post_query.is_user_dependent_search?
"similar_tags[#{post_query.current_user.id}]:#{post_query.to_s}"
else
"similar_tags:#{post_query.to_s}"
end
end
end