diff options
author | Sadposter <hannah+pleroma@coffee-and-dreams.uk> | 2019-09-04 15:45:40 +0100 |
---|---|---|
committer | Sadposter <hannah+pleroma@coffee-and-dreams.uk> | 2019-09-04 15:45:40 +0100 |
commit | 2975da284b75c846a99a56ce70a91ebc3cc43f33 (patch) | |
tree | f70a9096018afaa0a34b5d042e910dce692036e5 /lib/pleroma/user.ex | |
parent | e73685834c1797404c943f66417ffa30add87e04 (diff) | |
download | pleroma-2975da284b75c846a99a56ce70a91ebc3cc43f33.tar.gz |
truncate remote user bio/display name
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r-- | lib/pleroma/user.ex | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 29fd6d2ea..87e56b5b4 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -174,11 +174,25 @@ defmodule Pleroma.User do |> Repo.aggregate(:count, :id) end + defp truncate_if_exists(params, key, max_length) do + if Map.has_key?(params, key) do + {value, _chopped} = String.split_at(params[key], max_length) + Map.put(params, key, value) + else + params + end + end + def remote_user_creation(params) do bio_limit = Pleroma.Config.get([:instance, :user_bio_length], 5000) name_limit = Pleroma.Config.get([:instance, :user_name_length], 100) - params = Map.put(params, :info, params[:info] || %{}) + params = + params + |> Map.put(:info, params[:info] || %{}) + |> truncate_if_exists(:name, name_limit) + |> truncate_if_exists(:bio, bio_limit) + info_cng = User.Info.remote_user_creation(%User.Info{}, params[:info]) changes = |