1.1
[auf_django_saml.git] / auf / django / saml / middleware.py
index a14a186..89ee0aa 100644 (file)
@@ -1,11 +1,36 @@
 # -*- coding: utf-8 -*-
 
+import logging
+from django.contrib.auth.signals import user_logged_in
 from django.contrib.auth.middleware import RemoteUserMiddleware
-from auf.django.saml import settings
+from auf.django.saml import settings as saml_settings
+
 
 class SPMiddleware(RemoteUserMiddleware):
 
     def process_request(self, request):
-        if not settings.SAML_AUTH:
+        """
+        Log MELLON an REMOTE_USER
+        """
+        logger = logging.getLogger('SAML')
+        for k, v in request.META.items():
+            if k.startswith('MELLON') or k is 'REMOTE_USER':
+                logger.info('%s : %s' % (k, v))
+
+        if not saml_settings.SAML_AUTH:
             return
         return super(SPMiddleware, self).process_request(request)
+
+
+def configure_user(sender, request, user, *args, **kwargs):
+    """
+    Au login, on synchronise les infos du serveur d'identités
+    avec le user local
+    """
+    meta = request.META
+    user.email = meta['MELLON_mail']
+    user.first_name = meta['MELLON_gn']
+    user.last_name = meta['MELLON_sn']
+    user.save()
+
+user_logged_in.connect(configure_user)