aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEgor Kislitsyn <egor@kislitsyn.com>2019-03-12 22:04:08 +0700
committerEgor Kislitsyn <egor@kislitsyn.com>2019-03-12 22:04:08 +0700
commitd013b58e84f2c8213a5d26b1c3daf36e2f4807e5 (patch)
treeab2e00d53189db9a0b49e3ee1f411a4cd35fdc8d
parent10248d86a2ca333de8a44e28ab0b8cee70b5d5dd (diff)
downloadpleroma-d013b58e84f2c8213a5d26b1c3daf36e2f4807e5.tar.gz
add `mix pleroma.user delete_activities NICKNAME` task
-rw-r--r--lib/mix/tasks/pleroma/user.ex12
-rw-r--r--lib/pleroma/user.ex8
2 files changed, 18 insertions, 2 deletions
diff --git a/lib/mix/tasks/pleroma/user.ex b/lib/mix/tasks/pleroma/user.ex
index 037e44716..e232df14f 100644
--- a/lib/mix/tasks/pleroma/user.ex
+++ b/lib/mix/tasks/pleroma/user.ex
@@ -304,6 +304,18 @@ defmodule Mix.Tasks.Pleroma.User do
end
end
+ def run(["delete_activities", nickname]) do
+ Common.start_pleroma()
+
+ with %User{local: true} = user <- User.get_by_nickname(nickname) do
+ User.delete_user_activities(user)
+ Mix.shell().info("User #{nickname} deleted.")
+ else
+ _ ->
+ Mix.shell().error("No local user #{nickname}")
+ end
+ end
+
defp set_moderator(user, value) do
info_cng = User.Info.admin_api_update(user.info, %{is_moderator: value})
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 50e7e7ccd..2d0a8cde4 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -1083,6 +1083,12 @@ defmodule Pleroma.User do
friends
|> Enum.each(fn followed -> User.unfollow(user, followed) end)
+ delete_user_activities(user)
+
+ {:ok, user}
+ end
+
+ def delete_user_activities(user) do
query = from(a in Activity, where: a.actor == ^user.ap_id)
Repo.all(query)
@@ -1096,8 +1102,6 @@ defmodule Pleroma.User do
"Doing nothing"
end
end)
-
- {:ok, user}
end
def html_filter_policy(%User{info: %{no_rich_text: true}}) do