From 8dedce0944852455e14a5a896dd13b8bb62defb4 Mon Sep 17 00:00:00 2001 From: evazion Date: Fri, 8 May 2020 15:43:52 -0500 Subject: [PATCH] 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. --- app/logical/related_tag_calculator.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/logical/related_tag_calculator.rb b/app/logical/related_tag_calculator.rb index 879ff6212..85accd72a 100644 --- a/app/logical/related_tag_calculator.rb +++ b/app/logical/related_tag_calculator.rb @@ -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