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()