diff options
author | Sadposter <hannah+pleroma@coffee-and-dreams.uk> | 2019-09-02 12:15:21 +0100 |
---|---|---|
committer | Sadposter <hannah+pleroma@coffee-and-dreams.uk> | 2019-09-02 12:15:21 +0100 |
commit | 35ef470d000c53e21c6f867d53ca3a83260d93b8 (patch) | |
tree | 86c61a989b012e519ca084343518124e94df9fab /lib | |
parent | 6d33c89c4d27a1b52e69e1c14b408726410a6326 (diff) | |
download | pleroma-35ef470d000c53e21c6f867d53ca3a83260d93b8.tar.gz |
truncate fields for remote users instead
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/user/info.ex | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/pleroma/user/info.ex b/lib/pleroma/user/info.ex index 779bfbc18..0beb2f721 100644 --- a/lib/pleroma/user/info.ex +++ b/lib/pleroma/user/info.ex @@ -242,6 +242,7 @@ defmodule Pleroma.User.Info do end def remote_user_creation(info, params) do + params = Map.put(params, "fields", Enum.map(params["fields"], &truncate_field/1)) info |> cast(params, [ :ap_enabled, @@ -326,6 +327,12 @@ defmodule Pleroma.User.Info do defp valid_field?(_), do: false + defp truncate_field(%{"name" => name, "value" => value}) do + {name, _chopped} = String.split_at(name, Pleroma.Config.get([:instance, :account_field_name_length], 255)) + {value, _chopped} = String.split_at(value, Pleroma.Config.get([:instance, :account_field_value_length], 255)) + %{"name" => name, "value" => value} + end + @spec confirmation_changeset(Info.t(), keyword()) :: Changeset.t() def confirmation_changeset(info, opts) do need_confirmation? = Keyword.get(opts, :need_confirmation) |