X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fuser.ex;h=bed8fd1b46d57bbc5851953b18d0468a968bb8e4;hb=48b95a9b954b6d9e1b6f98097b35fcca4172c8a0;hp=23e0346a5a7238acaddbb1580badf964990d77d4;hpb=4c918392c61ca30f46d8e5f8e964993844b70ad8;p=akkoma diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 23e0346a5..bed8fd1b4 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -61,9 +61,7 @@ defmodule Pleroma.User do end def info_changeset(struct, params \\ %{}) do - struct - |> cast(params, [:info]) - |> validate_required([:info]) + raise "NOT VALID ANYMORE" end def user_info(%User{} = user) do @@ -80,13 +78,14 @@ defmodule Pleroma.User do @email_regex ~r/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/ def remote_user_creation(params) do - params = params - |> Map.put(:info, params[:info] || %{}) + params = + params + |> Map.put(:info, params[:info] || %{}) info_cng = User.Info.remote_user_creation(%User.Info{}, params[:info]) changes = - %User{info: %{}} + %User{} |> cast(params, [:bio, :name, :ap_id, :nickname, :avatar]) |> validate_required([:name, :ap_id]) |> unique_constraint(:nickname) @@ -113,6 +112,7 @@ defmodule Pleroma.User do end end + # TODO: Check if this still used def update_changeset(struct, params \\ %{}) do struct |> cast(params, [:bio, :name]) @@ -127,12 +127,17 @@ defmodule Pleroma.User do params |> Map.put(:last_refreshed_at, NaiveDateTime.utc_now()) + info_cng = + struct.info + |> User.Info.user_upgrade(params[:info]) + struct - |> cast(params, [:bio, :name, :info, :follower_address, :avatar, :last_refreshed_at]) + |> cast(params, [:bio, :name, :follower_address, :avatar, :last_refreshed_at]) |> unique_constraint(:nickname) |> validate_format(:nickname, ~r/^[a-zA-Z\d]+$/) |> validate_length(:bio, max: 5000) |> validate_length(:name, max: 100) + |> put_embed(:info, info_cng) end def password_update_changeset(struct, params) do @@ -280,7 +285,7 @@ defmodule Pleroma.User do end def locked?(%User{} = user) do - user.info["locked"] || false + user.info.locked || false end def get_by_ap_id(ap_id) do @@ -598,21 +603,25 @@ defmodule Pleroma.User do end def block_domain(user, domain) do - info_cng = user.info - |> User.Info.add_to_domain_block(domain) + info_cng = + user.info + |> User.Info.add_to_domain_block(domain) - cng = change(user) - |> put_embed(:info, info_cng) + cng = + change(user) + |> put_embed(:info, info_cng) update_and_set_cache(cng) end def unblock_domain(user, domain) do - info_cng = user.info - |> User.Info.remove_from_domain_block(domain) + info_cng = + user.info + |> User.Info.remove_from_domain_block(domain) - cng = change(user) - |> put_embed(:info, info_cng) + cng = + change(user) + |> put_embed(:info, info_cng) update_and_set_cache(cng) end @@ -708,7 +717,7 @@ defmodule Pleroma.User do user else changes = - %User{info: %{}} + %User{info: %User.Info{}} |> cast(%{}, [:ap_id, :nickname, :local]) |> put_change(:ap_id, relay_uri) |> put_change(:nickname, nil) @@ -722,7 +731,7 @@ defmodule Pleroma.User do # AP style def public_key_from_info(%{ - "source_data" => %{"publicKey" => %{"publicKeyPem" => public_key_pem}} + source_data: %{"publicKey" => %{"publicKeyPem" => public_key_pem}} }) do key = :public_key.pem_decode(public_key_pem) @@ -733,7 +742,7 @@ defmodule Pleroma.User do end # OStatus Magic Key - def public_key_from_info(%{"magic_key" => magic_key}) do + def public_key_from_info(%{magic_key: magic_key}) do {:ok, Pleroma.Web.Salmon.decode_key(magic_key)} end @@ -753,9 +762,9 @@ defmodule Pleroma.User do data = data |> Map.put(:name, blank?(data[:name]) || data[:nickname]) - |> Map.put(:info, data[:info] || %{}) cs = User.remote_user_creation(data) + Repo.insert(cs, on_conflict: :replace_all, conflict_target: :nickname) end