Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop
authorsadposter <hannah+pleroma@coffee-and-dreams.uk>
Sat, 20 Jul 2019 13:28:30 +0000 (14:28 +0100)
committersadposter <hannah+pleroma@coffee-and-dreams.uk>
Sat, 20 Jul 2019 13:28:30 +0000 (14:28 +0100)
1  2 
lib/mix/tasks/pleroma/user.ex

index 44ddd4b8d81d7d931816a7e83f25b09aef2ec642,c9b84b8f90eec967e399e37cf0b4afb87ecdf4e5..55f89e1d0a630b53cbcd994ccfcbd32a3180ebbc
@@@ -62,6 -62,10 +62,10 @@@ defmodule Mix.Tasks.Pleroma.User d
  
        mix pleroma.user unsubscribe NICKNAME
  
+   ## Unsubscribe local users from an entire instance and deactivate all accounts
+       mix pleroma.user unsubscribe_all_from_instance INSTANCE
    ## Create a password reset link.
  
        mix pleroma.user reset_password NICKNAME
      end
    end
  
+   def run(["unsubscribe_all_from_instance", instance]) do
+     start_pleroma()
+     Pleroma.User.Query.build(%{nickname: "@#{instance}"})
+     |> Pleroma.RepoStreamer.chunk_stream(500)
+     |> Stream.each(fn users ->
+       users
+       |> Enum.each(fn user ->
+         run(["unsubscribe", user.nickname])
+       end)
+     end)
+     |> Stream.run()
+   end
    def run(["set", nickname | rest]) do
      start_pleroma()
  
      end
    end
  
 +  def run(["change_email", nickname, email]) do
 +    start_pleroma()
 +    with %User{} = user <- User.get_cached_by_nickname(nickname) do
 +       user
 +       |> User.update_changeset(%{"email" => email})
 +       |> User.update_and_set_cache()
 +       shell_info("#{nickname}'s email updated")
 +    end
 +  end
 +
 +  def run(["send_confirmation", nickname]) do
 +    start_pleroma()
 +    with %User{} = user <- User.get_cached_by_nickname(nickname) do
 +       user
 +       |> Pleroma.Emails.UserEmail.account_confirmation_email()
 +       |> IO.inspect
 +       |> Pleroma.Emails.Mailer.deliver!()
 +       shell_info("#{nickname}'s email sent")
 +    end
 +  end
 +  
 +
    def run(["toggle_confirmed", nickname]) do
      start_pleroma()