Fix possible race condition on register using select for update.

remotes/origin/enhancement/email-actions
Andrey Antukh 2014-10-02 04:24:26 +02:00
parent b1cb7fdf66
commit 295ed2b6e7
1 changed files with 2 additions and 1 deletions

View File

@ -69,12 +69,13 @@ def is_user_already_registred(*, username:str, email:str, github_id:int=None) ->
""" """
user_model = apps.get_model("users", "User") user_model = apps.get_model("users", "User")
qs = user_model.objects.select_for_update()
or_expr = Q(username=username) | Q(email=email) or_expr = Q(username=username) | Q(email=email)
if github_id: if github_id:
or_expr = or_expr | Q(github_id=github_id) or_expr = or_expr | Q(github_id=github_id)
qs = user_model.objects.filter(or_expr) qs = qs.filter(or_expr)
return qs.exists() return qs.exists()