diff --git a/colab/accounts/middleware.py b/colab/accounts/middleware.py deleted file mode 100644 index e6a424d..0000000 --- a/colab/accounts/middleware.py +++ /dev/null @@ -1,33 +0,0 @@ -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 diff --git a/colab/proxy/utils/views.py b/colab/proxy/utils/views.py index 8393046..2e267c2 100644 --- a/colab/proxy/utils/views.py +++ b/colab/proxy/utils/views.py @@ -1,4 +1,6 @@ +import json + from django.conf import settings from revproxy.views import ProxyView @@ -17,3 +19,19 @@ class ColabProxyView(ProxyView): @property def app_label(self): raise NotImplementedError('app_label attribute must be set') + + def dispatch(self, request, *args, **kwargs): + + if request.user.is_authenticated(): + + remote_user_data = {} + + remote_user_data['email'] = request.user.email + remote_user_data['name'] = request.user.get_full_name() + + request.META['HTTP_REMOTE_USER_DATA'] = json.dumps( + remote_user_data, + sort_keys=True, + ) + + return super(ColabProxyView, self).dispatch(request, *args, **kwargs) diff --git a/colab/settings.py b/colab/settings.py index 2c1221e..2e47941 100644 --- a/colab/settings.py +++ b/colab/settings.py @@ -213,7 +213,6 @@ MIDDLEWARE_CLASSES = ( 'django_mobile.middleware.MobileDetectionMiddleware', 'django_mobile.middleware.SetFlavourMiddleware', 'colab.tz.middleware.TimezoneMiddleware', - 'colab.accounts.middleware.RemoteUserMiddleware', ) # Add the django_browserid authentication backend. -- libgit2 0.21.2