From 00a9db232bea4868c4da989a16f79b3bb5613ba6 Mon Sep 17 00:00:00 2001 From: Joshua Wehner Date: Tue, 16 May 2023 15:01:03 +0200 Subject: [PATCH] Remove manual user follow suggestions (#19457) * Remove manually user follow suggestions * I honestly don't understand what this is doing here * Remove suggested_users from config spec --- app/controllers/users_controller.rb | 15 +------ app/lib/constants/settings/general.rb | 7 ---- app/models/settings/general.rb | 2 - app/services/settings/general/upsert.rb | 2 +- .../admin/settings/forms/_onboarding.html.erb | 19 --------- spec/requests/admin/configs_spec.rb | 34 --------------- spec/requests/user/user_suggestions_spec.rb | 42 +------------------ .../articles/user_edits_an_article_spec.rb | 1 - 8 files changed, 4 insertions(+), 118 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 14ac4128b..8a9f2c408 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -5,7 +5,6 @@ class UsersController < ApplicationController only: %i[update update_password request_destroy full_delete remove_identity] after_action :verify_authorized, except: %i[index signout_confirm add_org_admin remove_org_admin remove_from_org confirm_destroy] - before_action :set_suggested_users, only: %i[index] before_action :initialize_stripe, only: %i[edit] INDEX_ATTRIBUTES_FOR_SERIALIZATION = %i[id name username summary profile_image].freeze @@ -255,23 +254,11 @@ class UsersController < ApplicationController private - def set_suggested_users - @suggested_users = Settings::General.suggested_users - end - - def default_suggested_users - @default_suggested_users ||= User.includes(:profile).where(username: @suggested_users) - end - def determine_follow_suggestions(current_user) - return default_suggested_users if Settings::General.prefer_manual_suggested_users? && default_suggested_users - - recent_suggestions = Users::SuggestRecent.call( + Users::SuggestRecent.call( current_user, attributes_to_select: INDEX_ATTRIBUTES_FOR_SERIALIZATION, ) - - recent_suggestions.presence || default_suggested_users end def handle_organization_tab diff --git a/app/lib/constants/settings/general.rb b/app/lib/constants/settings/general.rb index 2c9ad7fb0..08dec4c86 100644 --- a/app/lib/constants/settings/general.rb +++ b/app/lib/constants/settings/general.rb @@ -114,13 +114,6 @@ module Constants description: I18n.t("lib.constants.settings.general.tags.description"), placeholder: I18n.t("lib.constants.settings.general.tags.placeholder") }, - suggested_users: { - description: I18n.t("lib.constants.settings.general.users.description"), - placeholder: I18n.t("lib.constants.settings.general.users.placeholder") - }, - prefer_manual_suggested_users: { - description: I18n.t("lib.constants.settings.general.prefer_manual.description") - }, twitter_hashtag: { description: I18n.t("lib.constants.settings.general.hashtag.description"), placeholder: I18n.t("lib.constants.settings.general.hashtag.placeholder") diff --git a/app/models/settings/general.rb b/app/models/settings/general.rb index f98949b1a..e78e5c87f 100644 --- a/app/models/settings/general.rb +++ b/app/models/settings/general.rb @@ -86,8 +86,6 @@ module Settings # Onboarding setting :onboarding_background_image, type: :string, validates: { url: true, unless: -> { value.blank? } } setting :suggested_tags, type: :array, default: %w[] - setting :suggested_users, type: :array, default: %w[] - setting :prefer_manual_suggested_users, type: :boolean, default: false # Social Media setting :social_media_handles, type: :hash, default: { diff --git a/app/services/settings/general/upsert.rb b/app/services/settings/general/upsert.rb index 318aa7f35..d7a90c8a4 100644 --- a/app/services/settings/general/upsert.rb +++ b/app/services/settings/general/upsert.rb @@ -1,7 +1,7 @@ module Settings class General module Upsert - PARAMS_TO_BE_CLEANED = %i[sidebar_tags suggested_tags suggested_users].freeze + PARAMS_TO_BE_CLEANED = %i[sidebar_tags suggested_tags].freeze TAG_PARAMS = %w[sidebar_tags suggested_tags].freeze def self.call(settings) diff --git a/app/views/admin/settings/forms/_onboarding.html.erb b/app/views/admin/settings/forms/_onboarding.html.erb index 7a80835ad..b89b643f6 100644 --- a/app/views/admin/settings/forms/_onboarding.html.erb +++ b/app/views/admin/settings/forms/_onboarding.html.erb @@ -27,25 +27,6 @@ value: Settings::General.suggested_tags.join(","), placeholder: Constants::Settings::General.details[:suggested_tags][:placeholder] %> - -
- <%= admin_config_label :suggested_users %> - <%= admin_config_description Constants::Settings::General.details[:suggested_users][:description] %> - <%= f.text_field :suggested_users, - class: "crayons-textfield", - value: Settings::General.suggested_users.join(","), - placeholder: Constants::Settings::General.details[:suggested_users][:placeholder] %> -
- -
- <%= f.check_box :prefer_manual_suggested_users, checked: Settings::General.prefer_manual_suggested_users, class: "crayons-checkbox" %> -
- <%= admin_config_label :prefer_manual_suggested_users %> -

- <%= Constants::Settings::General.details[:prefer_manual_suggested_users][:description] %> -

-
-
<%= render "update_setting_button", f: f %> diff --git a/spec/requests/admin/configs_spec.rb b/spec/requests/admin/configs_spec.rb index 8900760a9..1589d268c 100644 --- a/spec/requests/admin/configs_spec.rb +++ b/spec/requests/admin/configs_spec.rb @@ -427,40 +427,6 @@ RSpec.describe "/admin/customization/config" do } expect(Settings::General.suggested_tags).to eq(%w[hey haha hoho bobofofo]) end - - it "removes space suggested_users" do - post admin_settings_general_settings_path, params: { - settings_general: { - suggested_users: "piglet, tigger,eeyore, Christopher Robin, kanga,roo" - } - } - expect(Settings::General.suggested_users).to eq(%w[piglet tigger eeyore christopherrobin kanga roo]) - end - - it "downcases suggested_users" do - post admin_settings_general_settings_path, params: { - settings_general: { - suggested_users: "piglet, tigger,EEYORE, Christopher Robin, KANGA,RoO" - } - } - expect(Settings::General.suggested_users).to eq(%w[piglet tigger eeyore christopherrobin kanga roo]) - end - - it "updates prefer_manual_suggested_users to true" do - prefer_manual = true - post admin_settings_general_settings_path, params: { - settings_general: { prefer_manual_suggested_users: prefer_manual } - } - expect(Settings::General.prefer_manual_suggested_users).to eq(prefer_manual) - end - - it "updates prefer_manual_suggested_users to false" do - prefer_manual = false - post admin_settings_general_settings_path, params: { - settings_general: { prefer_manual_suggested_users: prefer_manual } - } - expect(Settings::General.prefer_manual_suggested_users).to eq(prefer_manual) - end end describe "Rate Limits and spam" do diff --git a/spec/requests/user/user_suggestions_spec.rb b/spec/requests/user/user_suggestions_spec.rb index ffa074e17..0f3d6420d 100644 --- a/spec/requests/user/user_suggestions_spec.rb +++ b/spec/requests/user/user_suggestions_spec.rb @@ -3,19 +3,6 @@ require "rails_helper" RSpec.describe "Users" do describe "GET /users" do let(:user) { create(:user, username: "Sloan") } - let!(:suggested_users_list) { %w[eeyore] } - let!(:suggested_user_profile) do - create( - :profile, - user: create(:user, :without_profile, username: "eeyore", name: "Eeyore"), - summary: "I am always sad", - ) - end - let!(:suggested_user) { suggested_user_profile.user } - - before do - allow(Settings::General).to receive(:suggested_users).and_return(suggested_users_list) - end context "when no state params are present" do it "returns no users" do @@ -28,20 +15,13 @@ RSpec.describe "Users" do end context "when follow_suggestions params are present and no suggestions are found" do - it "returns the default suggested_users from Settings::General if they are present" do + it "returns an empty array (no automated suggested follow)" do sign_in user get users_path(state: "follow_suggestions") expect(response).to have_http_status(:ok) - expect(response.parsed_body.first).to include( - "id" => suggested_user.id, - "name" => suggested_user.name, - "username" => suggested_user.username, - "summary" => suggested_user.profile.summary, - "profile_image_url" => suggested_user.profile_image_url_for(length: 90), - "following" => false, - ) + expect(response.parsed_body).to eq([]) end end @@ -73,24 +53,6 @@ RSpec.describe "Users" do response_user = response.parsed_body.first expect(response_user["profile_image_url"]).to eq(other_user.profile_image_url) end - - it "returns the default suggested_users from Settings::General if prefer_manual_suggested_users is true" do - allow(Settings::General).to receive(:prefer_manual_suggested_users).and_return(true) - - sign_in user - - get users_path(state: "follow_suggestions") - - expect(response).to have_http_status(:ok) - expect(response.parsed_body.first).to include( - "id" => suggested_user.id, - "name" => suggested_user.name, - "username" => suggested_user.username, - "summary" => suggested_user.profile.summary, - "profile_image_url" => suggested_user.profile_image_url_for(length: 90), - "following" => false, - ) - end end context "when sidebar_suggestions params are present" do diff --git a/spec/system/articles/user_edits_an_article_spec.rb b/spec/system/articles/user_edits_an_article_spec.rb index 556b3df53..6726a9461 100644 --- a/spec/system/articles/user_edits_an_article_spec.rb +++ b/spec/system/articles/user_edits_an_article_spec.rb @@ -11,7 +11,6 @@ RSpec.describe "Editing with an editor", js: true do allow(Settings::General).to receive(:logo_png).and_return("https://dummyimage.com/800x600.png") allow(Settings::General).to receive(:mascot_image_url).and_return("https://dummyimage.com/800x600.jpg") allow(Settings::General).to receive(:suggested_tags).and_return("coding, beginners") - allow(Settings::General).to receive(:suggested_users).and_return("romagueramica") sign_in user end