aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/user.ex
diff options
context:
space:
mode:
authorlambda <lain@soykaf.club>2019-05-22 06:28:16 +0000
committerlambda <lain@soykaf.club>2019-05-22 06:28:16 +0000
commitff363f70b54ef1f310bf3bd7e506e13ca174675b (patch)
tree3f5e7b4596e2d6a5a6210438e186ea96fa2645fe /lib/pleroma/user.ex
parentcdac5efd10bba6e767c59f17e71f2eb8f3f2d601 (diff)
parent1344c85e2fe636fd6b9d033eb7add1c3a9701c7f (diff)
downloadpleroma-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.ex21
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