56 lines
2.0 KiB
Diff
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
|
||
|
|