diff --git a/app.py b/app.py index ca00af0..109c4b8 100644 --- a/app.py +++ b/app.py @@ -78,6 +78,21 @@ def miab_auth(username, password): #or False return False +# get all aliases for a username +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 data[i]['aliases'][j]['forwards_to'][0] == username: + aliases.append(data[i]['aliases'][j]['address']) + j+=1 + i+=1 + return aliases + # routing @@ -86,8 +101,9 @@ def home(): username = logged_in() message = request.get_cookie(cookie_name + "_message", secret=cookie_secret) if username: + aliases = get_aliases(username) # render homepage - return template('default', username=username, app_name=app_name, message=message) + return template('default', username=username, app_name=app_name, message=message, aliases=aliases) else: redirect('/login') @@ -158,6 +174,31 @@ def post_password(): redirect('/login') +#@post('/alias/add') +#def add_alias(): +# pass + +# delete alias +@post('/alias/delete') +def delete_alias(): + username = logged_in() + if username: + remove = request.forms.get('remove') + aliases = get_aliases(username) + for alias in aliases: + if alias == remove: + #remove the alias + #requests.post() + message = { "message": "The alias " + str(remove) + " has been removed successfully", "alert": "success" } + response.set_cookie(cookie_name + "_message", message, secret=cookie_secret, max_age=5, path="/") + redirect('/') + message = { "message": "You're trying to do something filthy", "alert": "danger"} + response.set_cookie(cookie_name + "_message", message, secret=cookie_secret, max_age=5, path="/") + redirect('/') + else: + redirect('/login') + + #@post('/delete') #def delete_account(): # username = logged_in() @@ -167,13 +208,7 @@ def post_password(): # else: # #render default and send flash error message -#@post('/alias/add') -#def add_alias(): -# pass -#@post('/alias/delete') -#def delete_alias(): -# pass diff --git a/views/default.tpl b/views/default.tpl index bd7cbd0..e39a2ec 100644 --- a/views/default.tpl +++ b/views/default.tpl @@ -78,10 +78,24 @@

Manage aliases


-

Aliases are additional email addresses which will be forwarded to your account. Besides your primary email address you can use an alias to send your emails.
Available domains: @aundas.org, @socialnerds.org, @phlo.at, @gmur.ml, @socialg.it
Be aware the limit of five active aliases.

-

david@aundas.org (delete)

-

david@socialnerds.org (delete)

-

hugo17@socialnerds.org (delete)

+

Aliases are additional email addresses which will be forwarded to your account. + Besides your primary email address you can use an alias to send your emails.
+ Available domains: @aundas.org, @socialnerds.org, + @phlo.at, @gmur.ml, @socialg.it
+ Be aware the limit of five active aliases.
+

+ + %for alias in aliases: +

+

+
+ + +
+ +
+

+ %end