deletemarkedusers.py 807 B

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