 0cfd5b4e89
			
		
	
	
		0cfd5b4e89
		
	
	
	
	
		
			
			Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk> Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/321
		
			
				
	
	
		
			28 lines
		
	
	
	
		
			707 B
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
	
		
			707 B
		
	
	
	
		
			Elixir
		
	
	
	
	
	
| # 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.id
 | |
|       )
 | |
| 
 | |
|     Repo.stream(query)
 | |
|     |> Enum.each(fn user ->
 | |
|       with {:ok, pem} <- Keys.generate_rsa_pem() do
 | |
|         Ecto.Changeset.cast(%User{id: user}, %{keys: pem}, [:keys])
 | |
|         |> Repo.update(returning: false)
 | |
|       end
 | |
|     end)
 | |
|   end
 | |
| end
 |