From 6d62a77c48c3248c3cd99bf1a45761e0659253db Mon Sep 17 00:00:00 2001
From: Dominik George <dominik.george@teckids.org>
Date: Sat, 16 Jul 2022 16:03:11 +0200
Subject: [PATCH] Use UUID 4 instead of UUID 5

---
 .../core/migrations/0042_add_uuid_field.py    | 35 ++++++++++---------
 aleksis/core/mixins.py                        |  6 +---
 2 files changed, 19 insertions(+), 22 deletions(-)

diff --git a/aleksis/core/migrations/0042_add_uuid_field.py b/aleksis/core/migrations/0042_add_uuid_field.py
index 6f8437c69..0c05e492f 100644
--- a/aleksis/core/migrations/0042_add_uuid_field.py
+++ b/aleksis/core/migrations/0042_add_uuid_field.py
@@ -1,6 +1,7 @@
 # Generated by Django 3.2.14 on 2022-07-16 12:49
 
-import aleksis.core.mixins
+import uuid
+
 from django.db import migrations, models
 import django.utils.timezone
 
@@ -15,81 +16,81 @@ class Migration(migrations.Migration):
         migrations.AddField(
             model_name='activity',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='additionalfield',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='announcement',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='announcementrecipient',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='custommenu',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='custommenuitem',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='dashboardwidgetorder',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='datacheckresult',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='group',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='grouptype',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='notification',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='pdffile',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='person',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='persongroupthrough',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='schoolterm',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
         migrations.AddField(
             model_name='taskuserassignment',
             name='uuid',
-            field=models.UUIDField(default=aleksis.core.mixins._generate_object_uuid, editable=False, unique=True),
+            field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
         ),
     ]
diff --git a/aleksis/core/mixins.py b/aleksis/core/mixins.py
index d81c73697..00535cbb0 100644
--- a/aleksis/core/mixins.py
+++ b/aleksis/core/mixins.py
@@ -83,10 +83,6 @@ def _generate_one_to_one_proxy_property(field, subfield):
     return property(getter, setter)
 
 
-def _generate_object_uuid():
-    return uuid.uuid5(uuid.NAMESPACE_URL, settings.BASE_URL)
-
-
 class ExtensibleModel(models.Model, metaclass=_ExtensibleModelBase):
     """Base model for all objects in AlekSIS apps.
 
@@ -131,7 +127,7 @@ class ExtensibleModel(models.Model, metaclass=_ExtensibleModelBase):
         - Dominik George <dominik.george@teckids.org>
     """
 
-    uuid = models.UUIDField(unique=True, default=_generate_object_uuid, editable=False)
+    uuid = models.UUIDField(unique=True, default=uuid.uuid4, editable=False)
 
     # Defines a material design icon associated with this type of model
     icon_ = "radio_button_unchecked"
-- 
GitLab