deletemarkedusers.py 747 B

1234567891011121314151617181920212223242526
  1. from django.contrib.auth import get_user_model
  2. from django.core.management.base import BaseCommand
  3. from ....core.pgutils import chunk_queryset
  4. from ...permissions import can_delete_own_account
  5. User = get_user_model()
  6. class Command(BaseCommand):
  7. help = (
  8. "Deletes accounts of users that have requested it. "
  9. "Leaves their content behind, but anonymises it."
  10. )
  11. def handle(self, *args, **options):
  12. users_deleted = 0
  13. queryset = User.objects.filter(is_deleting_account=True)
  14. for user in chunk_queryset(queryset):
  15. if can_delete_own_account(user, user):
  16. user.delete()
  17. users_deleted += 1
  18. self.stdout.write("Deleted users: %s" % users_deleted)