diff options
author | Ivan Tashkinov <ivantashkinov@gmail.com> | 2019-09-15 10:12:24 +0300 |
---|---|---|
committer | Ivan Tashkinov <ivantashkinov@gmail.com> | 2019-09-15 10:12:24 +0300 |
commit | 610236d6be1916783976f502255835b411337d79 (patch) | |
tree | 16f79d48ab22ab6faabfd8917126716ce261db1e /lib/pleroma/user.ex | |
parent | e127b9ab6d01da48ebad188d2b9fcf7cb8a41578 (diff) | |
parent | 9c64a25713790fefa8b5c419aeadf55113c17073 (diff) | |
download | pleroma-610236d6be1916783976f502255835b411337d79.tar.gz |
[#1149] Merge remote-tracking branch 'remotes/upstream/develop' into 1149-oban-job-queue
# Conflicts:
# docs/config.md
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 50ed3f5ee..f0306652c 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -175,11 +175,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) and is_binary(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 = |