web: rework member email address logic ~enleth

master
Kasownik 2017-05-12 17:57:15 +02:00
parent e30d1db0bc
commit c785151666
1 changed files with 31 additions and 11 deletions

View File

@ -240,21 +240,41 @@ class Member(db.Model):
self._apply_judgement(status)
return status
def get_list_email(self):
if self.preferred_email:
return self.preferred_email
def get_local_email(self):
return '{}@hackerspace.pl'.format(self.username)
def get_contact_email(self):
if self.preferred_email:
return self.preferred_email
mra = directory.get_member_fields(g.ldap, self.username,
'mailRoutingAddress')
def get_ldap_email(self):
mra = directory.get_member_fields(g.ldap, self.username,'mailRoutingAddress')
mra = mra['mailRoutingAddress']
if mra:
return mra
if not mra:
return None
return mra
def get_custom_email(self):
if self.preferred_email not in ['local', 'ldap', '', None]:
return self.preferred_email
else:
return '{}@hackerspace.pl'.format(self.username)
return None
def uses_local_email(self):
return self.preferred_email == 'local'
def uses_ldap_email(self):
return self.preferred_email == 'ldap'
def uses_custom_email(self):
return self.get_custom_email() is not None
def get_contact_email(self, adrtype = None):
if (self.uses_ldap_email() and adrtype is None) or adrtype == 'ldap':
return self.get_ldap_email()
elif (self.uses_local_email() and adrtype is None) or adrtype == 'local':
return self.get_local_email()
elif (self.uses_custom_email() and adrtype is None) or adrtype == 'custom':
return self.preferred_email
else: # fallback
return self.get_local_email()
def get_status(self, force_refresh = False):
"""It's better to call this after doing a full select of data."""