From 2e52abab87be3a3154a38091b3502353f7a027fc Mon Sep 17 00:00:00 2001 From: Anton Krytskyi Date: Wed, 29 Oct 2025 13:05:39 +0200 Subject: [PATCH] do not delete personal public registrations --- osf/models/user.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/osf/models/user.py b/osf/models/user.py index 531c0b6f7cc..36f0b37b7bb 100644 --- a/osf/models/user.py +++ b/osf/models/user.py @@ -2050,8 +2050,12 @@ def _validate_and_remove_resource_for_gdpr_delete(self, resources, hard_delete): logger.info(f'Removing {self._id} as a contributor to {resource.__class__.__name__} (pk:{resource.pk})...') resource.remove_contributor(self, auth=Auth(self), log=False) - # Delete all personal entities - for entity in personal_resources.all(): + # Delete all personal entities (excluding public registrations) + personal_to_delete = personal_resources + if hasattr(model, 'is_public') and hasattr(model, 'type'): + personal_to_delete = personal_to_delete.exclude(is_public=True, type='osf.registration') + + for entity in personal_to_delete.all(): if hard_delete: logger.info(f'Hard-deleting {entity.__class__.__name__} (pk: {entity.pk})...') entity.delete()