diff options
author | lambda <lain@soykaf.club> | 2019-05-22 06:28:16 +0000 |
---|---|---|
committer | lambda <lain@soykaf.club> | 2019-05-22 06:28:16 +0000 |
commit | ff363f70b54ef1f310bf3bd7e506e13ca174675b (patch) | |
tree | 3f5e7b4596e2d6a5a6210438e186ea96fa2645fe /lib/pleroma/user.ex | |
parent | cdac5efd10bba6e767c59f17e71f2eb8f3f2d601 (diff) | |
parent | 1344c85e2fe636fd6b9d033eb7add1c3a9701c7f (diff) | |
download | pleroma-ff363f70b54ef1f310bf3bd7e506e13ca174675b.tar.gz |
Merge branch 'refactor/keys' into 'develop'
move key generation functions into Pleroma.Keys module
See merge request pleroma/pleroma!1186
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r-- | lib/pleroma/user.ex | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 05fe58f7c..653dec95f 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -10,6 +10,7 @@ defmodule Pleroma.User do alias Comeonin.Pbkdf2 alias Pleroma.Activity + alias Pleroma.Keys alias Pleroma.Notification alias Pleroma.Object alias Pleroma.Registration @@ -1422,4 +1423,24 @@ defmodule Pleroma.User do } } end + + def ensure_keys_present(user) do + info = user.info + + 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) + end + end end |