diff options
author | Roman Chvanikov <chvanikoff@pm.me> | 2019-07-16 16:19:19 +0300 |
---|---|---|
committer | Roman Chvanikov <chvanikoff@pm.me> | 2019-07-16 16:19:19 +0300 |
commit | 9bca70b10a4c1a7664616b90c50c10c2a8a1003e (patch) | |
tree | d228fe80c6ed7869e4b24fd758b03d2ab489d7d6 /lib/pleroma/user.ex | |
parent | b052a9d4d0323eb64c0a741a499906659a674244 (diff) | |
parent | d3b922276138cf7aaa896d52a8e35113a40e22dc (diff) | |
download | pleroma-9bca70b10a4c1a7664616b90c50c10c2a8a1003e.tar.gz |
Merge develop
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r-- | lib/pleroma/user.ex | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index df92424b1..746f78168 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -1191,10 +1191,12 @@ 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}) when not is_nil(magic_key) do {:ok, Pleroma.Web.Salmon.decode_key(magic_key)} end + def public_key_from_info(_), do: {:error, "not found key"} + def get_public_key_for_ap_id(ap_id) do with {:ok, %User{} = user} <- get_or_fetch_by_ap_id(ap_id), {:ok, public_key} <- public_key_from_info(user.info) do @@ -1454,23 +1456,16 @@ defmodule Pleroma.User do } end - def ensure_keys_present(user) do - info = user.info - + def ensure_keys_present(%User{info: info} = user) do if info.keys do {:ok, user} else {:ok, pem} = Keys.generate_rsa_pem() - info_cng = - info - |> User.Info.set_keys(pem) - - cng = - Ecto.Changeset.change(user) - |> Ecto.Changeset.put_embed(:info, info_cng) - - update_and_set_cache(cng) + user + |> Ecto.Changeset.change() + |> Ecto.Changeset.put_embed(:info, User.Info.set_keys(info, pem)) + |> update_and_set_cache() end end |