From ffc65bed81d66a2a18d2b5d00ba2d3157a78486e Mon Sep 17 00:00:00 2001 From: Daniel Uber Date: Tue, 8 Mar 2022 11:15:06 -0600 Subject: [PATCH] Don't suggest author follows for anonymous visitors (#16825) * Don't suggest users for an anonymous visitor to follow The sidebar raises an error when rendering suggested users for a tag when the user is signed out. https://app.honeybadger.io/projects/66984/faults/79342962/ * Assert empty response returned for anonymous requests --- app/services/users/suggest_for_sidebar.rb | 2 ++ spec/services/users/suggest_for_sidebar_spec.rb | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/app/services/users/suggest_for_sidebar.rb b/app/services/users/suggest_for_sidebar.rb index 278c4449f..edfbe03e7 100644 --- a/app/services/users/suggest_for_sidebar.rb +++ b/app/services/users/suggest_for_sidebar.rb @@ -13,6 +13,8 @@ module Users end def suggest + return User.none unless user + suggested_user_ids = Rails.cache.fetch(generate_cache_name, expires_in: 120.hours) do (reputable_user_ids + random_user_ids).uniq end diff --git a/spec/services/users/suggest_for_sidebar_spec.rb b/spec/services/users/suggest_for_sidebar_spec.rb index a674d7870..5199baa1c 100644 --- a/spec/services/users/suggest_for_sidebar_spec.rb +++ b/spec/services/users/suggest_for_sidebar_spec.rb @@ -15,4 +15,9 @@ RSpec.describe Users::SuggestForSidebar, type: :service do tags = create_list(:tag, 3) expect(described_class.new(user, tags).suggest).to be_empty end + + it "returns no user if not signed in" do + tags = "html" + expect(described_class.new(nil, tags).suggest).to be_empty + end end