generate-keys-at-registration-time (#181)
[akkoma] / lib / pleroma / user.ex
index 2a1b5af94dad752970e084e1d63940bbfae22ec1..4383f8f536fd69036cbae00558f3fc58bd3b5bf7 100644 (file)
@@ -681,6 +681,7 @@ defmodule Pleroma.User do
     |> validate_exclusion(:nickname, Config.get([User, :restricted_nicknames]))
     |> validate_format(:nickname, local_nickname_regex())
     |> put_ap_id()
+    |> put_keys()
     |> unique_constraint(:ap_id)
     |> put_following_and_follower_and_featured_address()
   end
@@ -740,6 +741,7 @@ defmodule Pleroma.User do
     |> validate_length(:registration_reason, max: reason_limit)
     |> maybe_validate_required_email(opts[:external])
     |> put_password_hash
+    |> put_keys()
     |> put_ap_id()
     |> unique_constraint(:ap_id)
     |> put_following_and_follower_and_featured_address()
@@ -755,6 +757,11 @@ defmodule Pleroma.User do
     end
   end
 
+  def put_keys(changeset) do
+    {:ok, pem} = Keys.generate_rsa_pem()
+    put_change(changeset, :keys, pem)
+  end
+
   def put_ap_id(changeset) do
     ap_id = ap_id(%User{nickname: get_field(changeset, :nickname)})
     put_change(changeset, :ap_id, ap_id)