Normalise les logins clipper venant du CAS

Le CAS de l'ENS autorise les logins avec des espaces/une casse variable, par
exemple il considere equivalents les logins ' bCLeMeNt    ' et 'bclement'. Ceci
peut etre la cause de creation de doublons sur gestioCOF en cas de faute de
frappe (ou utilisateur malicieux ;-) )

Ce patch normalise les logins a la sortie du CAS (strip + lowercase) pour
eviter des desagrements.
This commit is contained in:
Basile Clement 2016-11-05 18:31:40 +01:00
parent 388f42b05f
commit 9846ed201b

View file

@ -29,6 +29,12 @@ class COFCASBackend(CASBackend):
request.session['attributes'] = attributes
if not username:
return None
# Le CAS de l'ENS accepte les logins avec des espaces au début
# et à la fin, ainsi quavec une casse variable. On normalise pour
# éviter les doublons.
username = username.strip().lower()
profiles = CofProfile.objects.filter(login_clipper=username)
if len(profiles) > 0:
profile = profiles.order_by('-is_cof')[0]