Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop
[akkoma] / lib / mix / tasks / pleroma / user.ex
index 3635c02bc4d21aaf0b29c5f25434e3d83e624ebf..ba44c045a33907565ebe56897baabd8495f36e8f 100644 (file)
@@ -144,6 +144,18 @@ defmodule Mix.Tasks.Pleroma.User do
     end
   end
 
+  def run(["reset_mfa", nickname]) do
+    start_pleroma()
+
+    with %User{local: true} = user <- User.get_cached_by_nickname(nickname),
+         {:ok, _token} <- Pleroma.MFA.disable(user) do
+      shell_info("Multi-Factor Authentication disabled for #{user.nickname}")
+    else
+      _ ->
+        shell_error("No local user #{nickname}")
+    end
+  end
+
   def run(["deactivate", nickname]) do
     start_pleroma()
 
@@ -220,7 +232,7 @@ defmodule Mix.Tasks.Pleroma.User do
     with %User{} = user <- User.get_cached_by_nickname(nickname) do
       user = user |> User.tag(tags)
 
-      shell_info("Tags of #{user.nickname}: #{inspect(tags)}")
+      shell_info("Tags of #{user.nickname}: #{inspect(user.tags)}")
     else
       _ ->
         shell_error("Could not change user tags for #{nickname}")
@@ -233,7 +245,7 @@ defmodule Mix.Tasks.Pleroma.User do
     with %User{} = user <- User.get_cached_by_nickname(nickname) do
       user = user |> User.untag(tags)
 
-      shell_info("Tags of #{user.nickname}: #{inspect(tags)}")
+      shell_info("Tags of #{user.nickname}: #{inspect(user.tags)}")
     else
       _ ->
         shell_error("Could not change user tags for #{nickname}")
@@ -326,6 +338,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(["toggle_confirmed", nickname]) do
     start_pleroma()