summaryrefslogtreecommitdiff
path: root/priv/repo/migrations/20220905011454_generate_unset_user_keys.exs
diff options
context:
space:
mode:
authorSean King <seanking2919@protonmail.com>2022-12-18 22:03:48 -0700
committerSean King <seanking2919@protonmail.com>2022-12-18 22:03:48 -0700
commit60df2d8a97325367a1ad40a30fd072f5dc1e805c (patch)
tree500d7ffb3b7c3359b486011085d8fb1a56a2ca5d /priv/repo/migrations/20220905011454_generate_unset_user_keys.exs
parent2d7ea263a1f7dba8e0a7667a95ea8af110e9be27 (diff)
parent8db82932a7998d411fa86d53b66f540714f465f3 (diff)
downloadpleroma-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.exs28
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