Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop
[akkoma] / lib / mix / tasks / pleroma / user.ex
index bb9a080a4ba91fd8ac3c9497f90967732020b60f..3827fe601cb4b50953b947f864b0c7c21d308943 100644 (file)
@@ -162,17 +162,20 @@ defmodule Mix.Tasks.Pleroma.User do
   def run(["deactivate", nickname]) do
     start_pleroma()
 
-    with %User{} = user <- User.get_cached_by_nickname(nickname) do
-      shell_info("Deactivating #{user.nickname}")
+    with %User{} = user <- User.get_cached_by_nickname(nickname),
+         true <- user.is_active do
       User.set_activation(user, false)
       :timer.sleep(500)
 
       user = User.get_cached_by_id(user.id)
 
       if Enum.empty?(Enum.filter(User.get_friends(user), & &1.local)) do
-        shell_info("Successfully unsubscribed all local followers from #{user.nickname}")
+        shell_info("Successfully deactivated #{nickname} and unsubscribed all local followers")
       end
     else
+      false ->
+        shell_info("User #{nickname} already deactivated")
+
       _ ->
         shell_error("No user #{nickname}")
     end
@@ -348,6 +351,39 @@ defmodule Mix.Tasks.Pleroma.User do
     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(["show", nickname]) do
+    start_pleroma()
+
+    nickname
+    |> User.get_cached_by_nickname()
+    |> IO.inspect()
+  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(["confirm", nickname]) do
     start_pleroma()