From 378701afcff9220f2823c362b71401376589819b Mon Sep 17 00:00:00 2001 From: Julian Rother <julianr@fsmpi.rwth-aachen.de> Date: Mon, 29 Aug 2016 23:44:20 +0200 Subject: [PATCH] Use @mod_required to decide if navitem is public --- server.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/server.py b/server.py index e88a2c7..4de14bc 100755 --- a/server.py +++ b/server.py @@ -22,6 +22,7 @@ if __name__ == '__main__': config['DEBUG'] = True config.from_pyfile('config.py', silent=True) app.jinja_env.globals['videoprefix'] = config['VIDEOPREFIX'] +mod_endpoints = [] if config['DB_ENGINE'] == 'sqlite': created = not os.path.exists(config['SQLITE_DB']) @@ -127,6 +128,7 @@ def ismod(*args): app.jinja_env.globals['ismod'] = ismod def mod_required(func): + mod_endpoints.append(func.__name__) @wraps(func) def decorator(*args, **kwargs): if not ismod(): @@ -134,12 +136,15 @@ def mod_required(func): return redirect(url_for('login', ref=request.url)) else: return func(*args, **kwargs) + print(decorator.__name__) return decorator app.jinja_env.globals['navbar'] = [] -def register_navbar(name, icon=None, visible=True): +def register_navbar(name, icon=None): def wrapper(func): - app.jinja_env.globals['navbar'].append((func.__name__, name, icon, visible)) + endpoint = func.__name__ + app.jinja_env.globals['navbar'].append((endpoint, name, icon, + not endpoint in mod_endpoints)) return func return wrapper @@ -297,7 +302,8 @@ def auth(): # For use with nginx auth_request @app.route('/schedule') -@register_navbar('Drehplan', 'calendar', visible=False) +@register_navbar('Drehplan', 'calendar') +@mod_required def schedule(): return render_template('schedule.html') -- GitLab