Skip to content

Commit 7028c70

Browse files
committed
models: make sure uid is compared case-sensitive
The database collation might vary, so use safer comparing in Python.
1 parent 7033ff7 commit 7028c70

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

Diff for: social_django/models.py

+9-5
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,15 @@ class Meta:
5454
abstract = True
5555

5656
@classmethod
57-
def get_social_auth(cls, provider, uid):
58-
try:
59-
return cls.objects.select_related("user").get(provider=provider, uid=uid)
60-
except cls.DoesNotExist:
61-
return None
57+
def get_social_auth(cls, provider: str, uid: str):
58+
for social in cls.objects.select_related("user").filter(
59+
provider=provider, uid=uid
60+
):
61+
# We need to compare to filter out case-insensitive lookups in
62+
# some databases (MySQL/MariaDB)
63+
if social.uid == uid:
64+
return social
65+
return None
6266

6367
@classmethod
6468
def username_max_length(cls):

0 commit comments

Comments
 (0)