diff options
author | Sean King <seanking2919@protonmail.com> | 2022-12-18 22:03:48 -0700 |
---|---|---|
committer | Sean King <seanking2919@protonmail.com> | 2022-12-18 22:03:48 -0700 |
commit | 60df2d8a97325367a1ad40a30fd072f5dc1e805c (patch) | |
tree | 500d7ffb3b7c3359b486011085d8fb1a56a2ca5d /priv/repo/migrations/20220905011454_generate_unset_user_keys.exs | |
parent | 2d7ea263a1f7dba8e0a7667a95ea8af110e9be27 (diff) | |
parent | 8db82932a7998d411fa86d53b66f540714f465f3 (diff) | |
download | pleroma-60df2d8a97325367a1ad40a30fd072f5dc1e805c.tar.gz pleroma-60df2d8a97325367a1ad40a30fd072f5dc1e805c.zip |
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into fine_grained_moderation_privileges
Diffstat (limited to 'priv/repo/migrations/20220905011454_generate_unset_user_keys.exs')
-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 |