v1.14
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Thu, 1 Nov 2012 18:00:11 +0000 (14:00 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Thu, 1 Nov 2012 18:00:11 +0000 (14:00 -0400)
CHANGES
auf/django/saml/backends.py
auf/django/saml/middleware.py
auf/django/saml/monkey.py
setup.py

diff --git a/CHANGES b/CHANGES
index d04462f..77af3a0 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,12 @@
+1.14
+----
+
+* Fix clean_username returne un résultat sans "@auf.org"
+
+* Fix clean_username qui n'était pas appelée
+
+* esthétique des logs INFO pour sentry
+
 1.13
 ----
 
index 136cbeb..c3568c4 100644 (file)
@@ -13,26 +13,26 @@ logger = logging.getLogger('SAML')
 class _BackendMixin:
 
     def clean_username(self, username):
-        logger.info(u"\nClean username")
-        logger.info(u"==============")
-        logger.info(u"username original : %s" % username)
+        info = u"username original : %s" % username
         clean_username = username.replace('@auf.org', '')
-        logger.info(u"username clean : %s" % clean_username)
+        info += u"\nusername clean : %s" % clean_username
+        logger.info(info)
+        return clean_username
 
-
-class FakeSPBackend(ModelBackend, _BackendMixin):
+class FakeSPBackend(_BackendMixin, ModelBackend,):
     """
     On autentifie uniquement sur le username
     """
 
     def authenticate(self, username=None, password=None):
+        username = self.clean_username(username)
         try:
             return User.objects.get(username=username)
         except User.DoesNotExist:
             return None
 
 
-class RealSPBackend(RemoteUserBackend, _BackendMixin):
+class RealSPBackend(_BackendMixin, RemoteUserBackend):
     """
     Backend reposant sur le id.auf.org
     """
@@ -50,14 +50,15 @@ class SPBackend(_SPBackend):
     Backend selon la conf
     """
 
-    def authenticate(self, **kwargs):
-        logger.info(u"\nauth challenge")
-        logger.info(u"==============")
+    def authenticate(self, *args, **kwargs):
+        info = u"%s" % __name__
         for k, v in kwargs.items():
             if k == 'password':
                 v = '****'
-            logger.info("* %s : %s" % (k, v))
+            info += "\n* %s : %s" % (k, v)
+        logger.info(info)
 
-        user = super(SPBackend, self).authenticate(**kwargs)
-        logger.info(u"Django user authentifié : %s" % user)
+        user = super(SPBackend, self).authenticate(*args, **kwargs)
+        info = u"Django user authentifié : %s" % user
+        logger.info(info)
         return user
index 960d038..4e89387 100644 (file)
@@ -15,14 +15,15 @@ class SPMiddleware(RemoteUserMiddleware):
         """
         Log MELLON an REMOTE_USER
         """
-        logger.info(u"\nProcess request")
-        logger.info(u"===============")
+        info = u"\n%s" % __name__
         for k, v in request.META.items():
             if k.startswith('MELLON') or k is 'REMOTE_USER':
-                logger.info('%s : %s' % (k, v))
+                info += u"\n%s : %s" % (k, v)
 
+        logger.info(info)
         if not saml_settings.SAML_AUTH:
             return
+
         return super(SPMiddleware, self).process_request(request)
 
 
@@ -32,11 +33,12 @@ def configure_user(sender, request, user, *args, **kwargs):
     avec le user local
     """
     if saml_settings.SAML_AUTH:
-        logger.info(u"* synchro du user local avec les infos de id.auf")
+        info = u"\n%s" % __name__
         meta = request.META
         user.email = meta['MELLON_mail']
         user.first_name = meta['MELLON_gn']
         user.last_name = meta['MELLON_sn']
         user.save()
+        logger.info(info)
 
 user_logged_in.connect(configure_user)
index 90ca4ef..c4a9b08 100644 (file)
@@ -20,23 +20,22 @@ logger = logging.getLogger('SAML')
 
 
 if saml_settings.SAML_AUTO_AUTH_URLS:
-    logger.info(u"\nPatch Auth settings")
-    logger.info(u"===================")
+    info = u"Patch Auth settings"
     if saml_settings.SAML_AUTH:
         LOGIN_URL = '/mellon/login'
         LOGOUT_URL = '/logout'
     else:
         LOGIN_URL = '/sandbox/login'
         LOGOUT_URL = '/sandbox/logout'
-    logger.info(u"* LOGIN_URL: %s" % LOGIN_URL)
-    logger.info(u"* LOGOUT_URL: %s" % LOGOUT_URL)
-    logger.info(u"* REDIRECT_FIELD_NAME: %s" %
-            saml_settings.SAML_REDIRECT_FIELD_NAME)
+    info += u"\n* LOGIN_URL: %s" % LOGIN_URL
+    info += u"\n* LOGOUT_URL: %s" % LOGOUT_URL
+    info += u"\n* REDIRECT_FIELD_NAME: %s" % saml_settings.SAML_REDIRECT_FIELD_NAME
 
     django.contrib.auth.REDIRECT_FIELD_NAME = \
         saml_settings.SAML_REDIRECT_FIELD_NAME
     settings.LOGIN_URL = LOGIN_URL
     settings.LOGOUT_URL = LOGOUT_URL
+    logger.info(info)
 
 from django.contrib.admin import site
 original_admin_view = site.__class__.admin_view
@@ -64,6 +63,5 @@ def custom_admin_view(self, view, cacheable=False):
     else:
         return original_admin_view(self, view, cacheable=False)
 
-logger.info(u"\nPatch de la admin.site pour gérer le \
-            login forcé de la page d'index")
+logger.info(u"Patch de la admin.site pour gérer le login forcé de la page d'index")
 site.__class__.admin_view = custom_admin_view
index 6fafbd9..32225bd 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,7 @@
 from setuptools import setup, find_packages
 
 name = 'auf.django.saml'
-version = '1.13'
+version = '1.14'
 
 setup(name=name,
       version=version,