From: Felix Dörre Date: Sat, 9 May 2020 13:15:35 +0000 (+0200) Subject: Merge branch 'UTC' into 'master' X-Git-Url: https://code.wpia.club/?p=motion.git;a=commitdiff_plain;h=1aa987d0d2f2c0a82b5bc0bbfe89eb1646b297a7;hp=a53c21d6917f544e61aaf8fa6adeda8a5cebb7c1 Merge branch 'UTC' into 'master' Utc See merge request felixdoerre/motion!5 --- diff --git a/config.py.example b/config.py.example index dcd7c8d..25b8123 100644 --- a/config.py.example +++ b/config.py.example @@ -5,3 +5,7 @@ PASSWORD="..." DEFAULT_HOST="hostname for migration from db version < 2" GROUP_PREFIX={'hostname': {'group1': 'g1', 'group2': 'g2'}} # motion types and their id-prefixes + +DURATION={'hostname':[3, 7, 14]} # duration period for motions + +#DEBUGUSER={'hostname':'username/create:* vote:*'} # remove # at beginning of line to use local debuguser diff --git a/motion.py b/motion.py index 24c86de..eb04eff 100644 --- a/motion.py +++ b/motion.py @@ -5,8 +5,6 @@ from flask import request import postgresql import filters -times=[3,5,14] - def get_db(): db = getattr(g, '_database', None) if db is None: @@ -22,12 +20,21 @@ app.config.from_pyfile('config.py') prefix=app.config.get("GROUP_PREFIX") +times=app.config.get("DURATION") + +debuguser=app.config.get("DEBUGUSER") + @app.before_request def lookup_user(): global prefix env = request.environ user = None + if debuguser is not None: + parts =debuguser[request.host].split("/", 1) + user = parts[0] + roles = parts[1] + if "USER_ROLES" in env: parts = env.get("USER_ROLES").split("/", 1) user = parts[0] @@ -37,6 +44,7 @@ def lookup_user(): user = env.get("USER") roles = env.get("ROLES") + if user is None: return "Server misconfigured", 500 roles = roles.split(" ") @@ -56,13 +64,14 @@ def lookup_user(): for r in roles: a = r.split(":", 1) - val = a[1] - if a[0] not in g.roles: - g.roles[a[0]] = [] - if val == "*": - g.roles[a[0]] = [group for group in prefix[request.host]] - else: - g.roles[a[0]].append(val) + if len(r)!=0: + val = a[1] + if a[0] not in g.roles: + g.roles[a[0]] = [] + if val == "*": + g.roles[a[0]] = [group for group in prefix[request.host]] + else: + g.roles[a[0]].append(val) return None def get_allowed_cats(action): @@ -143,7 +152,7 @@ def main(): prev = rs[9][0] else: prev = -1 - return render_template('index.html', motions=rv[:10], more=rv[10]["id"] if len(rv) == 11 else None, times=times, prev=prev, + return render_template('index.html', motions=rv[:10], more=rv[10]["id"] if len(rv) == 11 else None, times=times[request.host], prev=prev, categories=get_allowed_cats("create")) def rel_redirect(loc): @@ -157,7 +166,7 @@ def put_motion(): if cat not in get_allowed_cats("create"): return "Forbidden", 403 time = int(request.form.get("days", "3")); - if time not in times: + if time not in times[request.host]: return "Error, invalid length", 500 db = get_db() with db.xact():