summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2020-08-17 23:44:44 -0500
committerAlex Gleason <alex@alexgleason.me>2020-08-17 23:44:44 -0500
commit72cbe20a5887cf2457895b0559e7eb97cc1bc871 (patch)
tree0d5d36b4dfaff96dbbb4ddfe8b571adeccc11c17
parentc12c576ee28016444b89c426d67c960f156e831e (diff)
Purge most user fields upon deletion, "right to be forgotten" #859
-rw-r--r--lib/pleroma/user.ex35
1 files changed, 32 insertions, 3 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 1a7d25801..a9820affa 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -1585,15 +1585,44 @@ defmodule Pleroma.User do
@spec purge_user_changeset(User.t()) :: Changeset.t()
def purge_user_changeset(user) do
+ # "Right to be forgotten"
+ # https://gdpr.eu/right-to-be-forgotten/
change(user, %{
- deactivated: true,
+ bio: nil,
+ raw_bio: nil,
email: nil,
+ name: nil,
+ password_hash: nil,
+ keys: nil,
+ public_key: nil,
avatar: %{},
+ tags: [],
+ last_refreshed_at: nil,
+ last_digest_emailed_at: nil,
banner: %{},
background: %{},
+ note_count: 0,
+ follower_count: 0,
+ following_count: 0,
+ locked: false,
+ confirmation_pending: false,
+ password_reset_pending: false,
+ approval_pending: false,
+ registration_reason: nil,
+ confirmation_token: nil,
+ domain_blocks: [],
+ deactivated: true,
+ ap_enabled: false,
+ is_moderator: false,
+ is_admin: false,
+ mastofe_settings: nil,
+ mascot: nil,
+ emoji: %{},
+ pleroma_settings_store: %{},
fields: [],
- bio: nil,
- name: nil
+ raw_fields: [],
+ discoverable: false,
+ also_known_as: []
})
end