+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
----
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
"""
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
"""
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)
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)
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
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
from setuptools import setup, find_packages
name = 'auf.django.saml'
-version = '1.13'
+version = '1.14'
setup(name=name,
version=version,