socialnerds/accounts
socialnerds
/
accounts
Archived
1
0
Fork 0

there is a thing called list comprehensions

This commit is contained in:
david 2016-11-15 23:01:13 +01:00
parent 91dd90291a
commit eebdad0462
1 changed files with 7 additions and 41 deletions

48
app.py
View File

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