Browse Source

mix format

object-id-column
Sadposter 4 years ago
parent
commit
05c935c396
2 changed files with 23 additions and 9 deletions
  1. +7
    -2
      lib/pleroma/user/info.ex
  2. +16
    -7
      test/user_test.exs

+ 7
- 2
lib/pleroma/user/info.ex View File

@@ -243,6 +243,7 @@ defmodule Pleroma.User.Info do

def remote_user_creation(info, params) do
params = Map.put(params, "fields", Enum.map(params["fields"], &truncate_field/1))

info
|> cast(params, [
:ap_enabled,
@@ -328,8 +329,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, _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



+ 16
- 7
test/user_test.exs View File

@@ -1119,17 +1119,26 @@ defmodule Pleroma.UserTest do

describe "insert or update a user from given data" do
test "with normal data" do
user = insert(:user, %{nickname: "nick@name.de"})
data = %{ap_id: user.ap_id <> "xxx", name: user.name, nickname: user.nickname}
user = insert(:user, %{nickname: "nick@name.de"})
data = %{ap_id: user.ap_id <> "xxx", name: user.name, nickname: user.nickname}

assert {:ok, %User{}} = User.insert_or_update_user(data)
assert {:ok, %User{}} = User.insert_or_update_user(data)
end

test "with overly long fields" do
current_max_length = Pleroma.Config.get([:instance, :account_field_value_length], 255)
user = insert(:user, nickname: "nickname@supergood.domain")
data = %{ap_id: user.ap_id, info: %{ fields: [%{"name" => "myfield", "value" => String.duplicate("h", current_max_length + 1)}] }}
assert {:ok, %User{}} = User.insert_or_update_user(data)
current_max_length = Pleroma.Config.get([:instance, :account_field_value_length], 255)
user = insert(:user, nickname: "nickname@supergood.domain")

data = %{
ap_id: user.ap_id,
info: %{
fields: [
%{"name" => "myfield", "value" => String.duplicate("h", current_max_length + 1)}
]
}
}

assert {:ok, %User{}} = User.insert_or_update_user(data)
end
end



Loading…
Cancel
Save