diff options
author | Lain Iwakura <lain@soykaf.club> | 2017-12-07 18:13:05 +0100 |
---|---|---|
committer | Lain Iwakura <lain@soykaf.club> | 2017-12-07 18:13:05 +0100 |
commit | 6df6ad0b429150b00b065d95890bd62cd2778fad (patch) | |
tree | d3d27e1b91d1d3be473ea4376cfb92d4739b69e3 /lib | |
parent | a78ae2a685769cbf7459eb347aca581d389018ad (diff) | |
download | pleroma-6df6ad0b429150b00b065d95890bd62cd2778fad.tar.gz |
User deletion: Remove relationships.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/user.ex | 15 |
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 |