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
This commit is contained in:
parent
e9ce70d368
commit
00a9db232b
8 changed files with 4 additions and 118 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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: {
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -27,25 +27,6 @@
|
|||
value: Settings::General.suggested_tags.join(","),
|
||||
placeholder: Constants::Settings::General.details[:suggested_tags][:placeholder] %>
|
||||
</div>
|
||||
|
||||
<div class="crayons-field">
|
||||
<%= 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] %>
|
||||
</div>
|
||||
|
||||
<div class="crayons-field crayons-field--checkbox">
|
||||
<%= f.check_box :prefer_manual_suggested_users, checked: Settings::General.prefer_manual_suggested_users, class: "crayons-checkbox" %>
|
||||
<div class="mt-0">
|
||||
<%= admin_config_label :prefer_manual_suggested_users %>
|
||||
<p class="crayons-field__description">
|
||||
<%= Constants::Settings::General.details[:prefer_manual_suggested_users][:description] %>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<%= render "update_setting_button", f: f %>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue