mirror of
https://gitlab.science.ru.nl/technicie/MarietjeDjango.git
synced 2025-12-09 23:12:21 +01:00
More checks preventing bad user deletes
This commit is contained in:
@ -6,6 +6,9 @@ from django.conf import settings
|
||||
from django.db.models import Q
|
||||
from django.utils.timezone import get_default_timezone
|
||||
|
||||
from queues.models import PlaylistSong
|
||||
from songs.models import Song
|
||||
|
||||
_IMPORTANT_USERNAMES = ['root', 'admin', 'postmaster', 'dsprenkels', 'gmulder', 'bwesterb']
|
||||
|
||||
class Command(BaseCommand):
|
||||
@ -57,10 +60,19 @@ class Command(BaseCommand):
|
||||
deleted = 0
|
||||
for i, user in enumerate(users):
|
||||
print("[{: 4.0f}% ] {}".format(100 * i / len(users), user))
|
||||
|
||||
if user.username in _IMPORTANT_USERNAMES:
|
||||
self.stdout.write(self.style.WARNING("Not deleting user '{}': username looks important".format(user)))
|
||||
continue
|
||||
|
||||
if Song.objects.filter(deleted=False, user=user).count() > 500:
|
||||
self.stdout.write(self.style.WARNING("Not deleting user '{}': has high upload score".format(user)))
|
||||
continue
|
||||
|
||||
if PlaylistSong.objects.filter(user=user).count() > 1000:
|
||||
self.stdout.write(self.style.WARNING("Not deleting user '{}': has high queue score".format(user)))
|
||||
continue
|
||||
|
||||
user.delete()
|
||||
deleted += 1
|
||||
self.stdout.write(self.style.SUCCESS("Deleted {} users".format(deleted)))
|
||||
|
||||
Reference in New Issue
Block a user