first quick pass of user menu in navbar which shows simple read only prefs content, and a logout option that works

This commit is contained in:
2022-01-16 11:37:49 +11:00
parent 136525a73c
commit 684cc27df9
6 changed files with 71 additions and 8 deletions

23
main.py
View File

@@ -14,7 +14,7 @@ from shared import CreateSelect, CreateFoldersSelect, LocationIcon, DB_URL, PROD
# for ldap auth
from flask_ldap3_login import LDAP3LoginManager
from flask_login import LoginManager, login_user, login_required, UserMixin, current_user
from flask_login import LoginManager, login_user, login_required, UserMixin, current_user, logout_user
from flask_ldap3_login.forms import LDAPLoginForm
@@ -73,6 +73,7 @@ app.jinja_env.globals['CreateSelect'] = CreateSelect
app.jinja_env.globals['CreateFoldersSelect'] = CreateFoldersSelect
app.jinja_env.globals['LocationIcon'] = LocationIcon
app.jinja_env.globals['NEWEST_LOG_LIMIT'] = NEWEST_LOG_LIMIT
app.jinja_env.globals['current_user'] = current_user
# Declare a User Loader for Flask-Login.
@@ -132,9 +133,29 @@ def login():
return render_template("login.html", form=form)
@app.route('/logout')
@login_required
def logout():
logout_user()
return redirect('/login')
if __name__ == "__main__":
if hostname == PROD_HOST:
app.run(ssl_context=('/etc/letsencrypt/live/pa.depaoli.id.au/cert.pem', '/etc/letsencrypt/live/pa.depaoli.id.au/privkey.pem'), host="0.0.0.0", debug=False)
else:
app.run(host="0.0.0.0", debug=True)
###############################################################################
# This func creates a new filter in jinja2 to test to hand back the username
# from the ldap dn
################################################################################
@app.template_filter('Username')
def _jinja2_filter_parentpath(dn):
# pull apart a dn (uid=xxx,dn=yyy,etc), and return the xxx
username=str(dn)
s=username.index('=')
s+=1
f=username.index(',')
return username[s:f]