delay token expiration update to on_commit

This commit is contained in:
AlanCoding
2017-08-21 16:56:07 -04:00
parent 3957797815
commit 4d41e31639

View File

@@ -9,7 +9,7 @@ import uuid
# Django # Django
from django.conf import settings from django.conf import settings
from django.db import models from django.db import models, connection
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.utils.timezone import now as tz_now from django.utils.timezone import now as tz_now
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@@ -187,7 +187,7 @@ class AuthToken(BaseModel):
if not self.pk or not self.is_expired(now=now): if not self.pk or not self.is_expired(now=now):
self.expires = now + datetime.timedelta(seconds=settings.AUTH_TOKEN_EXPIRATION) self.expires = now + datetime.timedelta(seconds=settings.AUTH_TOKEN_EXPIRATION)
if save: if save:
self.save() connection.on_commit(lambda: self.save(update_fields=['expires']))
def invalidate(self, reason='timeout_reached', save=True): def invalidate(self, reason='timeout_reached', save=True):
if not AuthToken.reason_long(reason): if not AuthToken.reason_long(reason):