1
0
mirror of https://github.com/django/django.git synced 2025-10-24 22:26:08 +00:00

Fixed #1 -- Added anonymous session support via middleware and request.session. Removed the former request.session, which wasn't being used anyway. Removed auth.Session model. See the BackwardsIncompatibleChanges wiki page for IMPORTANT notes on code you'll have to change and a DB table you'll have to create.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@518 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty
2005-08-16 22:54:05 +00:00
parent f21ff30b10
commit 07889c13a6
13 changed files with 179 additions and 152 deletions

View File

@@ -95,29 +95,17 @@ class ModPythonRequest(httpwrappers.HttpRequest):
self._raw_post_data = self._req.read()
return self._raw_post_data
def _load_session_and_user(self):
from django.models.auth import sessions
from django.conf.settings import AUTH_SESSION_COOKIE
session_cookie = self.COOKIES.get(AUTH_SESSION_COOKIE, '')
try:
self._session = sessions.get_session_from_cookie(session_cookie)
self._user = self._session.get_user()
except sessions.SessionDoesNotExist:
from django.parts.auth import anonymoususers
self._session = None
self._user = anonymoususers.AnonymousUser()
def _get_session(self):
if not hasattr(self, '_session'):
self._load_session_and_user()
return self._session
def _set_session(self, session):
self._session = session
def _get_user(self):
if not hasattr(self, '_user'):
self._load_session_and_user()
from django.models.auth import users
try:
user_id = self.session[users.SESSION_KEY]
if not user_id:
raise ValueError
self._user = users.get_object(pk=user_id)
except (AttributeError, KeyError, ValueError, users.UserDoesNotExist):
from django.parts.auth import anonymoususers
self._user = anonymoususers.AnonymousUser()
return self._user
def _set_user(self, user):
@@ -130,7 +118,6 @@ class ModPythonRequest(httpwrappers.HttpRequest):
META = property(_get_meta)
REQUEST = property(_get_request)
raw_post_data = property(_get_raw_post_data)
session = property(_get_session, _set_session)
user = property(_get_user, _set_user)
class ModPythonHandler(BaseHandler):

View File

@@ -76,29 +76,17 @@ class WSGIRequest(httpwrappers.HttpRequest):
self._raw_post_data = self.environ['wsgi.input'].read(int(self.environ["CONTENT_LENGTH"]))
return self._raw_post_data
def _load_session_and_user(self):
from django.models.auth import sessions
from django.conf.settings import AUTH_SESSION_COOKIE
session_cookie = self.COOKIES.get(AUTH_SESSION_COOKIE, '')
try:
self._session = sessions.get_session_from_cookie(session_cookie)
self._user = self._session.get_user()
except sessions.SessionDoesNotExist:
from django.parts.auth import anonymoususers
self._session = None
self._user = anonymoususers.AnonymousUser()
def _get_session(self):
if not hasattr(self, '_session'):
self._load_session_and_user()
return self._session
def _set_session(self, session):
self._session = session
def _get_user(self):
if not hasattr(self, '_user'):
self._load_session_and_user()
from django.models.auth import users
try:
user_id = self.session[users.SESSION_KEY]
if not user_id:
raise ValueError
self._user = users.get_object(pk=user_id)
except (AttributeError, KeyError, ValueError, users.UserDoesNotExist):
from django.parts.auth import anonymoususers
self._user = anonymoususers.AnonymousUser()
return self._user
def _set_user(self, user):
@@ -110,7 +98,6 @@ class WSGIRequest(httpwrappers.HttpRequest):
FILES = property(_get_files)
REQUEST = property(_get_request)
raw_post_data = property(_get_raw_post_data)
session = property(_get_session, _set_session)
user = property(_get_user, _set_user)
class WSGIHandler(BaseHandler):