aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLain Iwakura <lain@soykaf.club>2017-12-07 18:13:05 +0100
committerLain Iwakura <lain@soykaf.club>2017-12-07 18:13:05 +0100
commit6df6ad0b429150b00b065d95890bd62cd2778fad (patch)
treed3d27e1b91d1d3be473ea4376cfb92d4739b69e3 /lib
parenta78ae2a685769cbf7459eb347aca581d389018ad (diff)
downloadpleroma-6df6ad0b429150b00b065d95890bd62cd2778fad.tar.gz
User deletion: Remove relationships.
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/user.ex15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index b21caba9d..021207de9 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -339,4 +339,19 @@ defmodule Pleroma.User do
cs = User.info_changeset(user, %{info: new_info})
Repo.update(cs)
end
+
+ def delete (%User{} = user) do
+ {:ok, user} = User.deactivate(user)
+
+ # Remove all relationships
+ {:ok, followers } = User.get_followers(user)
+ followers
+ |> Enum.each(fn (follower) -> User.unfollow(follower, user) end)
+
+ {:ok, friends} = User.get_friends(user)
+ friends
+ |> Enum.each(fn (followed) -> User.unfollow(user, followed) end)
+
+ :ok
+ end
end