Commit 80c3e389915b7684ad14fa526db285c1af180b29

Authored by Sergio Oliveira
1 parent eaa21c11

Moved REMOTE_USER_DATA to ColabProxyView

colab/accounts/middleware.py
@@ -1,33 +0,0 @@ @@ -1,33 +0,0 @@
1 -from json import dumps as json_dumps  
2 -  
3 -from colab.accounts.models import User  
4 -from colab.proxy.utils.views import ColabProxyView  
5 -  
6 -  
7 -class RemoteUserMiddleware(object):  
8 -  
9 - def process_view(self, request, view_func, view_args, view_kwargs):  
10 - if not request.user.is_authenticated():  
11 - return  
12 -  
13 - if not hasattr(view_func, 'im_class'):  
14 - return  
15 -  
16 - if not issubclass(view_func.im_class, ColabProxyView):  
17 - return  
18 -  
19 - user = User.objects.get(  
20 - username=request.user.get_username()  
21 - )  
22 -  
23 - remote_user_data = {}  
24 -  
25 - remote_user_data['email'] = user.email  
26 - remote_user_data['name'] = user.username  
27 -  
28 - request.META['REMOTE_USER_DATA'] = json_dumps(  
29 - remote_user_data,  
30 - sort_keys=True,  
31 - )  
32 -  
33 - return None  
colab/proxy/utils/views.py
1 1
  2 +import json
  3 +
2 from django.conf import settings 4 from django.conf import settings
3 5
4 from revproxy.views import ProxyView 6 from revproxy.views import ProxyView
@@ -17,3 +19,19 @@ class ColabProxyView(ProxyView): @@ -17,3 +19,19 @@ class ColabProxyView(ProxyView):
17 @property 19 @property
18 def app_label(self): 20 def app_label(self):
19 raise NotImplementedError('app_label attribute must be set') 21 raise NotImplementedError('app_label attribute must be set')
  22 +
  23 + def dispatch(self, request, *args, **kwargs):
  24 +
  25 + if request.user.is_authenticated():
  26 +
  27 + remote_user_data = {}
  28 +
  29 + remote_user_data['email'] = request.user.email
  30 + remote_user_data['name'] = request.user.get_full_name()
  31 +
  32 + request.META['HTTP_REMOTE_USER_DATA'] = json.dumps(
  33 + remote_user_data,
  34 + sort_keys=True,
  35 + )
  36 +
  37 + return super(ColabProxyView, self).dispatch(request, *args, **kwargs)
colab/settings.py
@@ -213,7 +213,6 @@ MIDDLEWARE_CLASSES = ( @@ -213,7 +213,6 @@ MIDDLEWARE_CLASSES = (
213 'django_mobile.middleware.MobileDetectionMiddleware', 213 'django_mobile.middleware.MobileDetectionMiddleware',
214 'django_mobile.middleware.SetFlavourMiddleware', 214 'django_mobile.middleware.SetFlavourMiddleware',
215 'colab.tz.middleware.TimezoneMiddleware', 215 'colab.tz.middleware.TimezoneMiddleware',
216 - 'colab.accounts.middleware.RemoteUserMiddleware',  
217 ) 216 )
218 217
219 # Add the django_browserid authentication backend. 218 # Add the django_browserid authentication backend.