web: rework member email address logic ~enleth
parent
e30d1db0bc
commit
c785151666
|
@ -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."""
|
||||
|
|
Loading…
Reference in New Issue