On proprifie un peu get_mail

This commit is contained in:
Pierre-Elliott Bécue 2015-04-13 01:41:51 +02:00
parent c80c222805
commit 9498e06024

View file

@ -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