From 720cf78a8ed1699c79d3ce24b83c855739a88980 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 6fcfbb6e159..dc01fc7a2f9 100644 --- a/osf/models/user.py +++ b/osf/models/user.py @@ -2079,8 +2079,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()