diff options
| author | Alex Gaynor <alex.gaynor@gmail.com> | 2011-05-31 15:43:19 +0000 |
|---|---|---|
| committer | Alex Gaynor <alex.gaynor@gmail.com> | 2011-05-31 15:43:19 +0000 |
| commit | 1cfb00dc4164f7a5342c1866a50485b1c2845cb7 (patch) | |
| tree | cc850e12bdb36359a0d41c84bbb17f176c2848a9 /django/contrib/auth/middleware.py | |
| parent | 45317677008a71c261b8c00388e8c2555a96598c (diff) | |
Cleaned up how ``request.user`` is set, this is a follow up to [16297]. Thanks for the review Luke.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16305 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/contrib/auth/middleware.py')
| -rw-r--r-- | django/contrib/auth/middleware.py | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/django/contrib/auth/middleware.py b/django/contrib/auth/middleware.py index 2c19a4e840..1cd8ae5885 100644 --- a/django/contrib/auth/middleware.py +++ b/django/contrib/auth/middleware.py @@ -1,26 +1,21 @@ from django.contrib import auth from django.core.exceptions import ImproperlyConfigured +from django.utils.functional import SimpleLazyObject -class LazyUser(object): - def __get__(self, request, obj_type=None): - if not hasattr(request, '_cached_user'): - from django.contrib.auth import get_user - request._cached_user = get_user(request) - return request._cached_user +def get_user(request): + from django.contrib.auth import get_user + + if not hasattr(request, '_cached_user'): + request._cached_user = get_user(request) + return request._cached_user class AuthenticationMiddleware(object): def process_request(self, request): assert hasattr(request, 'session'), "The Django authentication middleware requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'." - # We dynamically subclass request.__class__ rather than monkey patch the - # original class. - class RequestWithUser(request.__class__): - user = LazyUser() - - request.__class__ = RequestWithUser - return None + request.user = SimpleLazyObject(lambda: get_user(request)) class RemoteUserMiddleware(object): |
