From 2a4d46ad97343e4cd65654a205a9c62cbc267195 Mon Sep 17 00:00:00 2001 From: Aleksander Vognild Burkow Date: Thu, 21 Mar 2024 17:26:50 +0100 Subject: [PATCH] Add non-empty constraint for UserSocialAuth uid Any empty uids are surely erroneous, and better to have integrity errors than having users start sharing accounts when logging in. --- ...string_constraint_to_uid_usersocialauth.py | 19 +++++++++++++++++++ social_django/models.py | 5 +++++ 2 files changed, 24 insertions(+) create mode 100644 social_django/migrations/0016_add_not_empty_string_constraint_to_uid_usersocialauth.py diff --git a/social_django/migrations/0016_add_not_empty_string_constraint_to_uid_usersocialauth.py b/social_django/migrations/0016_add_not_empty_string_constraint_to_uid_usersocialauth.py new file mode 100644 index 00000000..a799aaec --- /dev/null +++ b/social_django/migrations/0016_add_not_empty_string_constraint_to_uid_usersocialauth.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0.3 on 2024-03-21 16:01 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("social_django", "0015_rename_extra_data_new_usersocialauth_extra_data"), + ] + + operations = [ + migrations.AddConstraint( + model_name="UserSocialAuth", + constraint=models.CheckConstraint( + check=models.Q(("uid", ""), _negated=True), + name="user_social_auth_uid_required", + ), + ), + ] diff --git a/social_django/models.py b/social_django/models.py index ab50185c..47d775a1 100644 --- a/social_django/models.py +++ b/social_django/models.py @@ -80,6 +80,11 @@ class Meta: app_label = "social_django" unique_together = ("provider", "uid") db_table = "social_auth_usersocialauth" + constraints = [ + models.CheckConstraint( + check=~models.Q(uid=""), name="user_social_auth_uid_required" + ), + ] class Nonce(models.Model, DjangoNonceMixin):