diff options
author | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2022-09-05 15:38:15 +0000 |
---|---|---|
committer | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2022-09-05 15:38:15 +0000 |
commit | 346c130ddca08a6927e9290a164212bf88463ca5 (patch) | |
tree | c5a3618fbd4937542a36e7129b8b55b530c8466a /priv | |
parent | f7c20731034f7aa3c72a6dcc312850db27787f7e (diff) | |
parent | cfb1bc967f857569d8d0088a40e1d16e5cbbeca2 (diff) | |
download | pleroma-346c130ddca08a6927e9290a164212bf88463ca5.tar.gz pleroma-346c130ddca08a6927e9290a164212bf88463ca5.zip |
Merge branch 'fix/user-private-key-generation' into 'develop'
User: generate private keys on user creation
See merge request pleroma/pleroma!3737
Diffstat (limited to 'priv')
-rw-r--r-- | priv/repo/migrations/20220905011454_generate_unset_user_keys.exs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/priv/repo/migrations/20220905011454_generate_unset_user_keys.exs b/priv/repo/migrations/20220905011454_generate_unset_user_keys.exs new file mode 100644 index 000000000..43bc7100b --- /dev/null +++ b/priv/repo/migrations/20220905011454_generate_unset_user_keys.exs @@ -0,0 +1,28 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.GenerateUnsetUserKeys do + use Ecto.Migration + import Ecto.Query + alias Pleroma.Keys + alias Pleroma.Repo + alias Pleroma.User + + def change do + query = + from(u in User, + where: u.local == true, + where: is_nil(u.keys), + select: u + ) + + Repo.stream(query) + |> Enum.each(fn user -> + with {:ok, pem} <- Keys.generate_rsa_pem() do + Ecto.Changeset.cast(user, %{keys: pem}, [:keys]) + |> Repo.update() + end + end) + end +end |