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 pleroma-6df6ad0b429150b00b065d95890bd62cd2778fad.zip | |
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 | 
