diff options
-rw-r--r-- | main/middleware.py | 15 | ||||
-rw-r--r-- | settings.py | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/main/middleware.py b/main/middleware.py index 01734f5e..df0a7a4b 100644 --- a/main/middleware.py +++ b/main/middleware.py @@ -31,6 +31,7 @@ from django.conf import settings from django.contrib.auth.views import login from django.http import HttpResponseRedirect import re +import threading class RequireLoginMiddleware(object): """ @@ -50,3 +51,17 @@ class RequireLoginMiddleware(object): else: return HttpResponseRedirect('%s?next=%s' % (settings.LOGIN_URL, request.path)) + +user_holder = threading.local() +user_holder.user = None + +class AutoUserMiddleware(object): + '''Saves the current user so it can be retrieved by the admin''' + def process_request(self, request): + user_holder.user = request.user + + +def get_user(): + '''Get the currently logged in request.user''' + return user_holder.user + diff --git a/settings.py b/settings.py index 515d63bd..5f9d082b 100644 --- a/settings.py +++ b/settings.py @@ -61,6 +61,7 @@ MIDDLEWARE_CLASSES += ( "django.middleware.common.CommonMiddleware", "django.middleware.doc.XViewMiddleware", "archweb_dev.main.middleware.RequireLoginMiddleware", + "archweb_dev.main.middleware.AutoUserMiddleware", ) ROOT_URLCONF = 'archweb_dev.urls' |