diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/user.ex | 11 | ||||
| -rw-r--r-- | lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex | 5 | 
2 files changed, 13 insertions, 3 deletions
| diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 0115abed5..0e5121694 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -1416,8 +1416,15 @@ defmodule Pleroma.User do      end)      delete_user_activities(user) -    invalidate_cache(user) -    Repo.delete(user) + +    if user.local do +      user +      |> change(%{deactivated: true, email: nil}) +      |> update_and_set_cache() +    else +      invalidate_cache(user) +      Repo.delete(user) +    end    end    def perform(:deactivate_async, user, status), do: deactivate(user, status) diff --git a/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex b/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex index dae7f0f2f..41677d04d 100644 --- a/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex @@ -53,7 +53,10 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIController do            else              users =                Enum.map(user_ap_ids, &User.get_cached_by_ap_id/1) -              |> Enum.filter(& &1) +              |> Enum.filter(fn +                %{deactivated: false} -> true +                _ -> false +              end)              %{                name: emoji, | 
