diff --git a/server.py b/server.py index e88a2c76fff155f04cb8407312ae12f690134e41..4de14bc6ed2569bae154cdce59b9cdd3a81d3fbc 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')