forked from AkkomaGang/akkoma
User: remove source_data use for follower_address and following_address
This commit is contained in:
parent
c433ed9dbb
commit
5628984df4
1 changed files with 45 additions and 46 deletions
|
@ -306,6 +306,7 @@ def banner_url(user, options \\ []) do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Should probably be renamed or removed
|
||||||
def ap_id(%User{nickname: nickname}), do: "#{Web.base_url()}/users/#{nickname}"
|
def ap_id(%User{nickname: nickname}), do: "#{Web.base_url()}/users/#{nickname}"
|
||||||
|
|
||||||
def ap_followers(%User{follower_address: fa}) when is_binary(fa), do: fa
|
def ap_followers(%User{follower_address: fa}) when is_binary(fa), do: fa
|
||||||
|
@ -339,6 +340,13 @@ defp truncate_if_exists(params, key, max_length) do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp fix_follower_address(%{follower_address: _, following_address: _} = params), do: params
|
||||||
|
|
||||||
|
defp fix_follower_address(%{nickname: nickname} = params),
|
||||||
|
do: Map.put(params, :follower_address, ap_followers(%User{nickname: nickname}))
|
||||||
|
|
||||||
|
defp fix_follower_address(params), do: params
|
||||||
|
|
||||||
def remote_user_creation(params) do
|
def remote_user_creation(params) do
|
||||||
bio_limit = Pleroma.Config.get([:instance, :user_bio_length], 5000)
|
bio_limit = Pleroma.Config.get([:instance, :user_bio_length], 5000)
|
||||||
name_limit = Pleroma.Config.get([:instance, :user_name_length], 100)
|
name_limit = Pleroma.Config.get([:instance, :user_name_length], 100)
|
||||||
|
@ -348,53 +356,44 @@ def remote_user_creation(params) do
|
||||||
|> truncate_if_exists(:name, name_limit)
|
|> truncate_if_exists(:name, name_limit)
|
||||||
|> truncate_if_exists(:bio, bio_limit)
|
|> truncate_if_exists(:bio, bio_limit)
|
||||||
|> truncate_fields_param()
|
|> truncate_fields_param()
|
||||||
|
|> fix_follower_address()
|
||||||
|
|
||||||
changeset =
|
%User{local: false}
|
||||||
%User{local: false}
|
|> cast(
|
||||||
|> cast(
|
params,
|
||||||
params,
|
[
|
||||||
[
|
:bio,
|
||||||
:bio,
|
:name,
|
||||||
:name,
|
:ap_id,
|
||||||
:ap_id,
|
:nickname,
|
||||||
:nickname,
|
:avatar,
|
||||||
:avatar,
|
:ap_enabled,
|
||||||
:ap_enabled,
|
:source_data,
|
||||||
:source_data,
|
:banner,
|
||||||
:banner,
|
:locked,
|
||||||
:locked,
|
:magic_key,
|
||||||
:magic_key,
|
:uri,
|
||||||
:uri,
|
:follower_address,
|
||||||
:hide_followers,
|
:following_address,
|
||||||
:hide_follows,
|
:hide_followers,
|
||||||
:hide_followers_count,
|
:hide_follows,
|
||||||
:hide_follows_count,
|
:hide_followers_count,
|
||||||
:follower_count,
|
:hide_follows_count,
|
||||||
:fields,
|
:follower_count,
|
||||||
:following_count,
|
:fields,
|
||||||
:discoverable,
|
:following_count,
|
||||||
:invisible,
|
:discoverable,
|
||||||
:actor_type,
|
:invisible,
|
||||||
:also_known_as
|
:actor_type,
|
||||||
]
|
:also_known_as
|
||||||
)
|
]
|
||||||
|> validate_required([:name, :ap_id])
|
)
|
||||||
|> unique_constraint(:nickname)
|
|> validate_required([:name, :ap_id])
|
||||||
|> validate_format(:nickname, @email_regex)
|
|> unique_constraint(:nickname)
|
||||||
|> validate_length(:bio, max: bio_limit)
|
|> validate_format(:nickname, @email_regex)
|
||||||
|> validate_length(:name, max: name_limit)
|
|> validate_length(:bio, max: bio_limit)
|
||||||
|> validate_fields(true)
|
|> validate_length(:name, max: name_limit)
|
||||||
|
|> validate_fields(true)
|
||||||
case params[:source_data] do
|
|
||||||
%{"followers" => followers, "following" => following} ->
|
|
||||||
changeset
|
|
||||||
|> put_change(:follower_address, followers)
|
|
||||||
|> put_change(:following_address, following)
|
|
||||||
|
|
||||||
_ ->
|
|
||||||
followers = ap_followers(%User{nickname: get_field(changeset, :nickname)})
|
|
||||||
put_change(changeset, :follower_address, followers)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_changeset(struct, params \\ %{}) do
|
def update_changeset(struct, params \\ %{}) do
|
||||||
|
|
Loading…
Reference in a new issue