there is a thing called list comprehensions
This commit is contained in:
parent
91dd90291a
commit
eebdad0462
48
app.py
48
app.py
|
@ -87,69 +87,35 @@ def miab_auth(username, password):
|
|||
def get_aliases(username):
|
||||
a = requests.get(miab_url + "/mail/aliases?format=json", auth=(miab_admin, miab_passwd))
|
||||
data = a.json()
|
||||
i=1 #start with 1 to skip miab main domain
|
||||
aliases = []
|
||||
while i < len(data):
|
||||
j=0
|
||||
while j < len(data[i]['aliases']):
|
||||
if len(data[i]['aliases'][j]['forwards_to']) == 1:
|
||||
if data[i]['aliases'][j]['forwards_to'][0] == username:
|
||||
aliases.append(data[i]['aliases'][j]['address'])
|
||||
j+=1
|
||||
i+=1
|
||||
aliases = [alias['address'] for user in data[1:] for alias in user['aliases'] if alias['forwards_to'] and alias['forwards_to'][0] == username]
|
||||
return aliases
|
||||
|
||||
# get all addresses available on miab
|
||||
def get_addresses():
|
||||
addresses = []
|
||||
# get alias data
|
||||
a = requests.get(miab_url + "/mail/aliases?format=json", auth=(miab_admin, miab_passwd))
|
||||
aliases = a.json()
|
||||
i=0
|
||||
while i < len(aliases):
|
||||
j=0
|
||||
while j < len(aliases[i]['aliases']):
|
||||
addresses.append(aliases[i]['aliases'][j]['address'])
|
||||
j+=1
|
||||
i+=1
|
||||
|
||||
# get user data
|
||||
u = requests.get(miab_url + "/mail/users?format=json", auth=(miab_admin, miab_passwd))
|
||||
users = u.json()
|
||||
i=0
|
||||
while i < len(users):
|
||||
j=0
|
||||
while j < len(users[i]['users']):
|
||||
addresses.append(users[i]['users'][j]['email'])
|
||||
j+=1
|
||||
i+=1
|
||||
# generate list of all addresses on the box
|
||||
addresses = [alias['address'] for user in aliases for alias in user['aliases']]
|
||||
addresses.extend([ user['email'] for domains in users for user in domains['users']])
|
||||
return addresses
|
||||
|
||||
# get all valid domains from miab
|
||||
def get_domains():
|
||||
domains = []
|
||||
u = requests.get(miab_url + "/mail/users?format=json", auth=(miab_admin, miab_passwd))
|
||||
users = u.json()
|
||||
i=0
|
||||
while i < len(users):
|
||||
domains.append(users[i]['domain'])
|
||||
i+=1
|
||||
domains = [ user['domain'] for user in users ]
|
||||
return domains
|
||||
|
||||
# get forwarding alias for user
|
||||
def get_forward(username):
|
||||
a = requests.get(miab_url + "/mail/aliases?format=json", auth=(miab_admin, miab_passwd))
|
||||
aliases = a.json()
|
||||
i=0
|
||||
while i < len(aliases):
|
||||
j=0
|
||||
while j < len(aliases[i]['aliases']):
|
||||
if aliases[i]['aliases'][j]['address'] == username:
|
||||
forward = aliases[i]['aliases'][j]['forwards_to'][0]
|
||||
return forward
|
||||
j+=1
|
||||
i+=1
|
||||
return None
|
||||
forward = [alias['forwards_to'][0] for domains in aliases for alias in domains['aliases'] if alias['address'] == username]
|
||||
return forward[0]
|
||||
|
||||
# routing
|
||||
|
||||
|
|
Reference in New Issue