Merge branch 'develop' into 'fix/mix-task-uploads-moduledoc'
[akkoma] / lib / mix / tasks / pleroma / user.ex
index 82f3514564948a656a188ede359482e2548fb8ce..2675b021df2f9ed0f87dff24bff68d5149b90468 100644 (file)
@@ -20,8 +20,8 @@ defmodule Mix.Tasks.Pleroma.User do
   - `--admin`/`--no-admin` - whether the user is an admin
 
   ## Generate an invite link.
-    
-     mix pleroma.user invite
+
+      mix pleroma.user invite
 
   ## Delete the user's account.
 
@@ -31,6 +31,10 @@ defmodule Mix.Tasks.Pleroma.User do
 
       mix pleroma.user toggle_activated NICKNAME
 
+  ## Unsubscribe local users from user's account and deactivate it
+
+      mix pleroma.user unsubscribe NICKNAME
+
   ## Create a password reset link.
 
       mix pleroma.user reset_password NICKNAME
@@ -231,11 +235,27 @@ defmodule Mix.Tasks.Pleroma.User do
     end
   end
 
-  defp set_moderator(user, value) do
-    info =
-      user.info
-      |> Map.put("is_moderator", value)
+  def run(["invite"]) do
+    Common.start_pleroma()
+
+    with {:ok, token} <- Pleroma.UserInviteToken.create_token() do
+      Mix.shell().info("Generated user invite token")
+
+      url =
+        Pleroma.Web.Router.Helpers.redirect_url(
+          Pleroma.Web.Endpoint,
+          :registration_page,
+          token.token
+        )
+
+      IO.puts(url)
+    else
+      _ ->
+        Mix.shell().error("Could not create invite token.")
+    end
+  end
 
+  defp set_moderator(user, value) do
     info_cng = User.Info.admin_api_update(user.info, %{is_moderator: value})
 
     user_cng =
@@ -248,10 +268,6 @@ defmodule Mix.Tasks.Pleroma.User do
   end
 
   defp set_admin(user, value) do
-    info =
-      user.info
-      |> Map.put("is_admin", value)
-
     info_cng = User.Info.admin_api_update(user.info, %{is_admin: value})
 
     user_cng =
@@ -264,10 +280,6 @@ defmodule Mix.Tasks.Pleroma.User do
   end
 
   defp set_locked(user, value) do
-    info =
-      user.info
-      |> Map.put("locked", value)
-
     info_cng = User.Info.user_upgrade(user.info, %{locked: value})
 
     user_cng =
@@ -278,24 +290,4 @@ defmodule Mix.Tasks.Pleroma.User do
 
     Mix.shell().info("Locked status of #{user.nickname}: #{user.info.locked}")
   end
-
-  def run(["invite"]) do
-    Common.start_pleroma()
-
-    with {:ok, token} <- Pleroma.UserInviteToken.create_token() do
-      Mix.shell().info("Generated user invite token")
-
-      url =
-        Pleroma.Web.Router.Helpers.redirect_url(
-          Pleroma.Web.Endpoint,
-          :registration_page,
-          token.token
-        )
-
-      IO.puts(url)
-    else
-      _ ->
-        Mix.shell().error("Could not create invite token.")
-    end
-  end
 end