Fix: remove unused AnonymousUser

This commit is contained in:
John Taylor 2024-04-14 00:38:26 +02:00
parent 47b4a602a7
commit a70826edd8
6 changed files with 44 additions and 16 deletions

View File

@ -266,7 +266,7 @@ class Command(BaseCommand):
manifest += json.loads( manifest += json.loads(
serializers.serialize( serializers.serialize(
"json", "json",
User.objects.exclude(username__in=["consumer", "AnonymousUser"]), User.objects.exclude(username__in=["consumer"]),
), ),
) )

View File

@ -94,7 +94,7 @@ class Command(BaseCommand):
) )
break break
if ( if (
User.objects.exclude(username__in=["consumer", "AnonymousUser"]).count() User.objects.exclude(username__in=["consumer"]).count()
!= 0 != 0
): ):
self.stdout.write( self.stdout.write(

View File

@ -0,0 +1,29 @@
# Generated by Django 4.2.11 on 2024-04-13 21:19
import secrets
from django.conf import settings
from django.contrib.auth.models import User
from django.db import migrations
def delete_anonymous_user(apps, schema_editor):
User.objects.get(username="AnonymousUser").delete()
def create_anonymous_user(apps, schema_editor):
randomPassword = ''.join(secrets.choice('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789') for i in range(10))
User.objects.create(
username="AnonymousUser",
password=randomPassword,
)
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.RunPython(forwards_func, reverse_func),
]

View File

@ -181,10 +181,10 @@ class TestExportImport(DirectoriesMixin, FileSystemAssertsMixin, TestCase):
manifest = self._do_export(use_filename_format=use_filename_format) manifest = self._do_export(use_filename_format=use_filename_format)
# dont include consumer or AnonymousUser users # dont include consumer user
self.assertEqual( self.assertEqual(
len(list(filter(lambda e: e["model"] == "auth.user", manifest))), len(list(filter(lambda e: e["model"] == "auth.user", manifest))),
2, 1,
) )
self.assertEqual( self.assertEqual(

View File

@ -31,9 +31,8 @@ class TestManageSuperUser(DirectoriesMixin, TestCase):
out = self.call_command(environ={}) out = self.call_command(environ={})
# just the consumer user which is created # just the consumer user which is created during migration
# during migration, and AnonymousUser self.assertEqual(User.objects.count(), 1)
self.assertEqual(User.objects.count(), 2)
self.assertTrue(User.objects.filter(username="consumer").exists()) self.assertTrue(User.objects.filter(username="consumer").exists())
self.assertEqual(User.objects.filter(is_superuser=True).count(), 0) self.assertEqual(User.objects.filter(is_superuser=True).count(), 0)
self.assertEqual( self.assertEqual(
@ -51,10 +50,10 @@ class TestManageSuperUser(DirectoriesMixin, TestCase):
out = self.call_command(environ={"PAPERLESS_ADMIN_PASSWORD": "123456"}) out = self.call_command(environ={"PAPERLESS_ADMIN_PASSWORD": "123456"})
# count is 3 as there's the consumer # count is 2 as there's the consumer
# user already created during migration, and AnonymousUser # user already created during migration
user: User = User.objects.get_by_natural_key("admin") user: User = User.objects.get_by_natural_key("admin")
self.assertEqual(User.objects.count(), 3) self.assertEqual(User.objects.count(), 2)
self.assertTrue(user.is_superuser) self.assertTrue(user.is_superuser)
self.assertEqual(user.email, "root@localhost") self.assertEqual(user.email, "root@localhost")
self.assertEqual(out, 'Created superuser "admin" with provided password.\n') self.assertEqual(out, 'Created superuser "admin" with provided password.\n')
@ -71,7 +70,7 @@ class TestManageSuperUser(DirectoriesMixin, TestCase):
out = self.call_command(environ={"PAPERLESS_ADMIN_PASSWORD": "123456"}) out = self.call_command(environ={"PAPERLESS_ADMIN_PASSWORD": "123456"})
self.assertEqual(User.objects.count(), 3) self.assertEqual(User.objects.count(), 2)
with self.assertRaises(User.DoesNotExist): with self.assertRaises(User.DoesNotExist):
User.objects.get_by_natural_key("admin") User.objects.get_by_natural_key("admin")
self.assertEqual( self.assertEqual(
@ -92,7 +91,7 @@ class TestManageSuperUser(DirectoriesMixin, TestCase):
out = self.call_command(environ={"PAPERLESS_ADMIN_PASSWORD": "123456"}) out = self.call_command(environ={"PAPERLESS_ADMIN_PASSWORD": "123456"})
self.assertEqual(User.objects.count(), 3) self.assertEqual(User.objects.count(), 2)
user: User = User.objects.get_by_natural_key("admin") user: User = User.objects.get_by_natural_key("admin")
self.assertTrue(user.check_password("password")) self.assertTrue(user.check_password("password"))
self.assertEqual(out, "Did not create superuser, a user admin already exists\n") self.assertEqual(out, "Did not create superuser, a user admin already exists\n")
@ -111,7 +110,7 @@ class TestManageSuperUser(DirectoriesMixin, TestCase):
out = self.call_command(environ={"PAPERLESS_ADMIN_PASSWORD": "123456"}) out = self.call_command(environ={"PAPERLESS_ADMIN_PASSWORD": "123456"})
self.assertEqual(User.objects.count(), 3) self.assertEqual(User.objects.count(), 2)
user: User = User.objects.get_by_natural_key("admin") user: User = User.objects.get_by_natural_key("admin")
self.assertTrue(user.check_password("password")) self.assertTrue(user.check_password("password"))
self.assertFalse(user.is_superuser) self.assertFalse(user.is_superuser)
@ -150,7 +149,7 @@ class TestManageSuperUser(DirectoriesMixin, TestCase):
) )
user: User = User.objects.get_by_natural_key("admin") user: User = User.objects.get_by_natural_key("admin")
self.assertEqual(User.objects.count(), 3) self.assertEqual(User.objects.count(), 2)
self.assertTrue(user.is_superuser) self.assertTrue(user.is_superuser)
self.assertEqual(user.email, "hello@world.com") self.assertEqual(user.email, "hello@world.com")
self.assertEqual(user.username, "admin") self.assertEqual(user.username, "admin")
@ -174,7 +173,7 @@ class TestManageSuperUser(DirectoriesMixin, TestCase):
) )
user: User = User.objects.get_by_natural_key("super") user: User = User.objects.get_by_natural_key("super")
self.assertEqual(User.objects.count(), 3) self.assertEqual(User.objects.count(), 2)
self.assertTrue(user.is_superuser) self.assertTrue(user.is_superuser)
self.assertEqual(user.email, "hello@world.com") self.assertEqual(user.email, "hello@world.com")
self.assertEqual(user.username, "super") self.assertEqual(user.username, "super")

View File

@ -90,7 +90,7 @@ class UserViewSet(ModelViewSet):
model = User model = User
queryset = User.objects.exclude( queryset = User.objects.exclude(
username__in=["consumer", "AnonymousUser"], username__in=["consumer"],
).order_by(Lower("username")) ).order_by(Lower("username"))
serializer_class = UserSerializer serializer_class = UserSerializer