diff options
| author | Adrian Holovaty <adrian@holovaty.com> | 2006-06-01 22:25:06 +0000 |
|---|---|---|
| committer | Adrian Holovaty <adrian@holovaty.com> | 2006-06-01 22:25:06 +0000 |
| commit | 26b61aa8131c2bce21be22aa4d00720d6c1326ad (patch) | |
| tree | 555f33c47c4e8ae46bd2ef16a735e73ecfe8b456 /django | |
| parent | dbcd2fe985498889e1206f54c196f00879e79dae (diff) | |
Fixed #395 -- Added SESSION_EXPIRE_AT_BROWSER_CLOSE setting, which regulates whether session framework should use browser-session-length cookies.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3049 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
| -rw-r--r-- | django/conf/global_settings.py | 1 | ||||
| -rw-r--r-- | django/contrib/sessions/middleware.py | 9 |
2 files changed, 8 insertions, 2 deletions
diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 3e9318dfce..e110a50884 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -235,6 +235,7 @@ SESSION_COOKIE_NAME = 'sessionid' # Cookie name. This can be whatever yo SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2 # Age of cookie, in seconds (default: 2 weeks). SESSION_COOKIE_DOMAIN = None # A string like ".lawrence.com", or None for standard domain cookie. SESSION_SAVE_EVERY_REQUEST = False # Whether to save the session data on every request. +SESSION_EXPIRE_AT_BROWSER_CLOSE = False # Whether sessions expire when a user closes his browser. ######### # CACHE # diff --git a/django/contrib/sessions/middleware.py b/django/contrib/sessions/middleware.py index dae8a11554..da1130f560 100644 --- a/django/contrib/sessions/middleware.py +++ b/django/contrib/sessions/middleware.py @@ -79,9 +79,14 @@ class SessionMiddleware: else: if modified or settings.SESSION_SAVE_EVERY_REQUEST: session_key = request.session.session_key or Session.objects.get_new_session_key() + if settings.SESSION_EXPIRE_AT_BROWSER_CLOSE: + max_age = None + expires = None + else: + max_age = settings.SESSION_COOKIE_AGE + expires = datetime.datetime.strftime(datetime.datetime.utcnow() + datetime.timedelta(seconds=settings.SESSION_COOKIE_AGE), "%a, %d-%b-%Y %H:%M:%S GMT") new_session = Session.objects.save(session_key, request.session._session, datetime.datetime.now() + datetime.timedelta(seconds=settings.SESSION_COOKIE_AGE)) - expires = datetime.datetime.strftime(datetime.datetime.utcnow() + datetime.timedelta(seconds=settings.SESSION_COOKIE_AGE), "%a, %d-%b-%Y %H:%M:%S GMT") response.set_cookie(settings.SESSION_COOKIE_NAME, session_key, - max_age=settings.SESSION_COOKIE_AGE, expires=expires, domain=settings.SESSION_COOKIE_DOMAIN) + max_age=max_age, expires=expires, domain=settings.SESSION_COOKIE_DOMAIN) return response |
