diff options
| author | Jacob Kaplan-Moss <jacob@jacobian.org> | 2007-12-04 20:24:22 +0000 |
|---|---|---|
| committer | Jacob Kaplan-Moss <jacob@jacobian.org> | 2007-12-04 20:24:22 +0000 |
| commit | 602b7bca7aa0b94bb38ba16735635959e04d91ab (patch) | |
| tree | 7cf47daef814206e032ed02eb03696774b65af67 | |
| parent | 76dd53ac08a1541aa4b28c8cf28772f491066b3c (diff) | |
Fixed #6082: file-based sessions now verify that SESSION_FILE_PATH is a valid storage location, and raise ImproperlyConfigured if not. Thanks, jags78.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6889 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/contrib/sessions/backends/file.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/django/contrib/sessions/backends/file.py b/django/contrib/sessions/backends/file.py index 221db5cc60..a8c3c69b10 100644 --- a/django/contrib/sessions/backends/file.py +++ b/django/contrib/sessions/backends/file.py @@ -1,14 +1,23 @@ import os +import tempfile from django.conf import settings from django.contrib.sessions.backends.base import SessionBase -from django.core.exceptions import SuspiciousOperation +from django.core.exceptions import SuspiciousOperation, ImproperlyConfigured class SessionStore(SessionBase): """ Implements a file based session store. """ def __init__(self, session_key=None): - self.storage_path = settings.SESSION_FILE_PATH + self.storage_path = getattr(settings, "SESSION_FILE_PATH", tempfile.gettempdir()) + + # Make sure the storage path is valid. + if not os.path.isdir(self.storage_path): + raise ImproperlyConfigured("The session storage path %r doesn't exist. "\ + "Please set your SESSION_FILE_PATH setting "\ + "to an existing directory in which Django "\ + "can store session data." % self.storage_path) + self.file_prefix = settings.SESSION_COOKIE_NAME super(SessionStore, self).__init__(session_key) |
