diff options
| author | Hasan Ramezani <hasan.r67@gmail.com> | 2019-05-19 22:15:45 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-05-21 08:50:09 +0200 |
| commit | 9d6f981a66bd2c4188c4a3e08e4f36fc9c4882ef (patch) | |
| tree | 9b061285be81426ec542e7e67927a22e8f5b575b /django | |
| parent | df28ebd6c89d68e781020a6a4e8405c0154e8e40 (diff) | |
Fixed #28763 -- Allowed overriding the session cookie age with SessionStore.get_session_cookie_age().
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/sessions/backends/base.py | 7 | ||||
| -rw-r--r-- | django/contrib/sessions/backends/file.py | 2 | ||||
| -rw-r--r-- | django/contrib/sessions/backends/signed_cookies.py | 3 |
3 files changed, 7 insertions, 5 deletions
diff --git a/django/contrib/sessions/backends/base.py b/django/contrib/sessions/backends/base.py index 0e8ade3fbc..453f533e90 100644 --- a/django/contrib/sessions/backends/base.py +++ b/django/contrib/sessions/backends/base.py @@ -206,6 +206,9 @@ class SessionBase: _session = property(_get_session) + def get_session_cookie_age(self): + return settings.SESSION_COOKIE_AGE + def get_expiry_age(self, **kwargs): """Get the number of seconds until the session expires. @@ -225,7 +228,7 @@ class SessionBase: expiry = self.get('_session_expiry') if not expiry: # Checks both None and 0 cases - return settings.SESSION_COOKIE_AGE + return self.get_session_cookie_age() if not isinstance(expiry, datetime): return expiry delta = expiry - modification @@ -249,7 +252,7 @@ class SessionBase: if isinstance(expiry, datetime): return expiry - expiry = expiry or settings.SESSION_COOKIE_AGE # Checks both None and 0 cases + expiry = expiry or self.get_session_cookie_age() return modification + timedelta(seconds=expiry) def set_expiry(self, value): diff --git a/django/contrib/sessions/backends/file.py b/django/contrib/sessions/backends/file.py index e75195f222..cc5f93a8ff 100644 --- a/django/contrib/sessions/backends/file.py +++ b/django/contrib/sessions/backends/file.py @@ -69,7 +69,7 @@ class SessionStore(SessionBase): Return the expiry time of the file storing the session's content. """ return session_data.get('_session_expiry') or ( - self._last_modification() + datetime.timedelta(seconds=settings.SESSION_COOKIE_AGE) + self._last_modification() + datetime.timedelta(seconds=self.get_session_cookie_age()) ) def load(self): diff --git a/django/contrib/sessions/backends/signed_cookies.py b/django/contrib/sessions/backends/signed_cookies.py index 1ee7790b8e..8942df1ea4 100644 --- a/django/contrib/sessions/backends/signed_cookies.py +++ b/django/contrib/sessions/backends/signed_cookies.py @@ -1,4 +1,3 @@ -from django.conf import settings from django.contrib.sessions.backends.base import SessionBase from django.core import signing @@ -16,7 +15,7 @@ class SessionStore(SessionBase): self.session_key, serializer=self.serializer, # This doesn't handle non-default expiry dates, see #19201 - max_age=settings.SESSION_COOKIE_AGE, + max_age=self.get_session_cookie_age(), salt='django.contrib.sessions.backends.signed_cookies', ) except Exception: |
