mirror of
https://gitlab.science.ru.nl/technicie/MarietjeDjango.git
synced 2025-12-09 22:12:22 +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.db.models import Q
|
||||||
from django.utils.timezone import get_default_timezone
|
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']
|
_IMPORTANT_USERNAMES = ['root', 'admin', 'postmaster', 'dsprenkels', 'gmulder', 'bwesterb']
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
@ -57,10 +60,19 @@ class Command(BaseCommand):
|
|||||||
deleted = 0
|
deleted = 0
|
||||||
for i, user in enumerate(users):
|
for i, user in enumerate(users):
|
||||||
print("[{: 4.0f}% ] {}".format(100 * i / len(users), user))
|
print("[{: 4.0f}% ] {}".format(100 * i / len(users), user))
|
||||||
|
|
||||||
if user.username in _IMPORTANT_USERNAMES:
|
if user.username in _IMPORTANT_USERNAMES:
|
||||||
self.stdout.write(self.style.WARNING("Not deleting user '{}': username looks important".format(user)))
|
self.stdout.write(self.style.WARNING("Not deleting user '{}': username looks important".format(user)))
|
||||||
continue
|
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()
|
user.delete()
|
||||||
deleted += 1
|
deleted += 1
|
||||||
self.stdout.write(self.style.SUCCESS("Deleted {} users".format(deleted)))
|
self.stdout.write(self.style.SUCCESS("Deleted {} users".format(deleted)))
|
||||||
|
|||||||
Reference in New Issue
Block a user