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