From 64dd05d8b0b0496b5701144e2a41b6aad112e11d Mon Sep 17 00:00:00 2001 From: Carlos Oliveira Date: Mon, 27 Oct 2014 17:05:02 -0200 Subject: [PATCH] Setting HTTP header from middleware --- colab/accounts/middleware.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+), 0 deletions(-) create mode 100644 colab/accounts/middleware.py diff --git a/colab/accounts/middleware.py b/colab/accounts/middleware.py new file mode 100644 index 0000000..cf3b15d --- /dev/null +++ b/colab/accounts/middleware.py @@ -0,0 +1,33 @@ +from json import dumps as json_dumps + +from colab.accounts.models import User +from colab.proxy.utils.views import ColabProxyView + + +class RemoteUserMiddleware(object): + + def process_view(self, request, view_func, view_args, view_kwargs): + if not request.user.is_authenticated(): + return + + if not hasattr(view_func, 'im_class'): + return + + if not issubclass(view_func.im_class, ColabProxyView): + return + + user = User.objects.get( + username=request.user.get_username() + ) + + remote_user_data = {} + + remote_user_data['EMAIL'] = user.email + remote_user_data['NAME'] = user.username + + request.META['REMOTE_USER_DATA'] = json_dumps( + remote_user_data, + sort_keys=True, + ) + + return None -- libgit2 0.21.2