Skip to content

Commit 32c8053

Browse files
trbssynasius
authored andcommitted
improve variable checking in clear_expired
1 parent cd46299 commit 32c8053

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

oauth2_provider/models.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -271,13 +271,21 @@ def get_application_model():
271271

272272

273273
def clear_expired():
274-
REFRESH_TOKEN_EXPIRE_SECONDS = oauth2_settings.REFRESH_TOKEN_EXPIRE_SECONDS
275-
if not isinstance(REFRESH_TOKEN_EXPIRE_SECONDS, timedelta):
276-
REFRESH_TOKEN_EXPIRE_SECONDS = timedelta(seconds=REFRESH_TOKEN_EXPIRE_SECONDS)
277274
now = timezone.now()
275+
refresh_expire_at = None
276+
277+
REFRESH_TOKEN_EXPIRE_SECONDS = oauth2_settings.REFRESH_TOKEN_EXPIRE_SECONDS
278+
if REFRESH_TOKEN_EXPIRE_SECONDS:
279+
if not isinstance(REFRESH_TOKEN_EXPIRE_SECONDS, timedelta):
280+
try:
281+
REFRESH_TOKEN_EXPIRE_SECONDS = timedelta(seconds=REFRESH_TOKEN_EXPIRE_SECONDS)
282+
except TypeError:
283+
e = "REFRESH_TOKEN_EXPIRE_SECONDS must be either a timedelta or seconds"
284+
raise ImproperlyConfigured(e)
285+
refresh_expire_at = now - REFRESH_TOKEN_EXPIRE_SECONDS
286+
278287
with transaction.atomic():
279-
if REFRESH_TOKEN_EXPIRE_SECONDS:
280-
refresh_expire_date = now - REFRESH_TOKEN_EXPIRE_SECONDS
281-
RefreshToken.objects.filter(access_token__expires__lt=refresh_expire_date).delete()
288+
if refresh_expire_at:
289+
RefreshToken.objects.filter(access_token__expires__lt=refresh_expire_at).delete()
282290
AccessToken.objects.filter(refresh_token__isnull=True, expires__lt=now).delete()
283291
Grant.objects.filter(expires__lt=now).delete()

0 commit comments

Comments
 (0)