integ/python/python-django/files/session-filebase-backend-fi...

56 lines
2.0 KiB
Diff

From 1ab6e8cd0031813aa2b70847d6b54f294d8f90f5 Mon Sep 17 00:00:00 2001
From: Giao Le <giao.le@windriver.com>
Date: Mon, 11 Jul 2016 16:20:13 -0400
Subject: [PATCH 1/1] session-filebase-backend-fix
---
Django-1.8.7 | 1 +
django/contrib/sessions/backends/file.py | 15 ++++++++++++---
2 files changed, 13 insertions(+), 3 deletions(-)
create mode 120000 Django-1.8.7
diff --git a/Django-1.8.7 b/Django-1.8.7
new file mode 120000
index 0000000..2fa6e7c
--- /dev/null
+++ b/Django-1.8.7
@@ -0,0 +1 @@
+Django-1.8.7
\ No newline at end of file
diff --git a/django/contrib/sessions/backends/file.py b/django/contrib/sessions/backends/file.py
index 41469c4..2b10b3e 100644
--- a/django/contrib/sessions/backends/file.py
+++ b/django/contrib/sessions/backends/file.py
@@ -71,6 +71,17 @@ class SessionStore(SessionBase):
modification = datetime.datetime.fromtimestamp(modification)
return modification
+ def _expiry_date(self, session_data):
+ """
+ Return the expiry time of the file storing the session's content.
+ """
+ expiry = session_data.get('_session_expiry')
+ if not expiry:
+ expiry = self._last_modification() + datetime.timedelta(seconds=settings.SESSION_COOKIE_AGE)
+ elif not isinstance(expiry, datetime.datetime):
+ expiry = self._last_modification() + datetime.timedelta(seconds=expiry)
+ return expiry
+
def load(self):
session_data = {}
try:
@@ -89,9 +100,7 @@ class SessionStore(SessionBase):
self.create()
# Remove expired sessions.
- expiry_age = self.get_expiry_age(
- modification=self._last_modification(),
- expiry=session_data.get('_session_expiry'))
+ expiry_age = self.get_expiry_age(expiry=self._expiry_date(session_data))
if expiry_age < 0:
session_data = {}
self.delete()
--
1.9.1