From 9498e0602454380bda6614677a2573f85e940711 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Elliott=20B=C3=A9cue?= Date: Mon, 13 Apr 2015 01:41:51 +0200 Subject: [PATCH] On proprifie un peu get_mail --- objets.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/objets.py b/objets.py index ea0833f..b12d715 100644 --- a/objets.py +++ b/objets.py @@ -1132,16 +1132,32 @@ class proprio(CransLdapObject): def get_mail(self): """Renvoie un mail de contact valide, or None""" - mails = ( self.get('canonicalAlias', []) or \ - self.get('mail', []) or \ - self.get('uid', [])) - if not mails or \ - any(b['type'] == 'mail_invalide' and b['fin'] == '-' - for b in self.get('blacklist', []) ): + # On récupère les mails parmi les diverses possibilités. + mails = ( + self.get('canonicalAlias', []) + or self.get('mail', []) + or self.get('mailExt', []) + or self.get('uid', []) + ) + + # On vérifie si l'adhérent est en mail invalide + mail_invalide = any([ + b['type'] == 'mail_invalide' + and b['fin'] == '-' + for b in self.get('blacklist', []) + ]) + + # Si pas de mail ou mail invalide + if not mails or mail_invalide: return None + + # On récupère le premier de la liste. mail = mails[0].value + + # Login ? @crans.org if '@' not in mail: mail += '@crans.org' + return mail