From 3f13437a9cfc0f13cb4921ee04b7821c1b169021 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 11 May 2020 12:50:25 +0200 Subject: [PATCH] User: Truncate bios when updating a remote user. --- lib/pleroma/user.ex | 10 +++++++++- test/user_test.exs | 3 +++ test/web/activity_pub/activity_pub_controller_test.exs | 4 ++++ .../controllers/suggestion_controller_test.exs | 2 -- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 2f0333da0..3e8f19e30 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -501,7 +501,15 @@ def upgrade_changeset(struct, params \\ %{}, remote? \\ false) do params = Map.put(params, :last_refreshed_at, NaiveDateTime.utc_now()) - params = if remote?, do: truncate_fields_param(params), else: params + params = + if remote? do + params + |> truncate_fields_param() + |> truncate_if_exists(:name, name_limit) + |> truncate_if_exists(:bio, bio_limit) + else + params + end struct |> cast( diff --git a/test/user_test.exs b/test/user_test.exs index e63c44360..368bdae12 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -570,7 +570,10 @@ test "returns nil for nonexistant local user" do assert fetched_user == "not found nonexistant" end + clear_config([:instance, :user_bio_length]) + test "updates an existing user, if stale" do + Pleroma.Config.put([:instance, :user_bio_length], 1) a_week_ago = NaiveDateTime.add(NaiveDateTime.utc_now(), -604_800) orig_user = diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs index c418232da..153adc703 100644 --- a/test/web/activity_pub/activity_pub_controller_test.exs +++ b/test/web/activity_pub/activity_pub_controller_test.exs @@ -310,7 +310,11 @@ test "cached purged after activity deletion", %{conn: conn} do end describe "/inbox" do + clear_config([:instance, :user_bio_length]) + test "it inserts an incoming activity into the database", %{conn: conn} do + Pleroma.Config.put([:instance, :user_bio_length], 1) + data = File.read!("test/fixtures/mastodon-post-activity.json") |> Poison.decode!() conn = diff --git a/test/web/mastodon_api/controllers/suggestion_controller_test.exs b/test/web/mastodon_api/controllers/suggestion_controller_test.exs index 8d0e70db8..f120bd0cd 100644 --- a/test/web/mastodon_api/controllers/suggestion_controller_test.exs +++ b/test/web/mastodon_api/controllers/suggestion_controller_test.exs @@ -5,8 +5,6 @@ defmodule Pleroma.Web.MastodonAPI.SuggestionControllerTest do use Pleroma.Web.ConnCase - alias Pleroma.Config - setup do: oauth_access(["read"]) test "returns empty result", %{conn: conn} do