X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=motion.py;h=f6ddf1344004ee30bd5bbb40d096eadcd33cea90;hb=63a94b5a4f9ed652be936ceeaefe00215d49b0bd;hp=24c86dec66347cbcf0b4f0c4531c06daa2936d6a;hpb=445cfb06d8bd9be768ee8c7f31f5880d290aa79a;p=motion.git diff --git a/motion.py b/motion.py index 24c86de..f6ddf13 100644 --- a/motion.py +++ b/motion.py @@ -4,8 +4,8 @@ from flask import render_template, redirect from flask import request import postgresql import filters - -times=[3,5,14] +from flaskext.markdown import Markdown +from markdown.extensions import Extension def get_db(): db = getattr(g, '_database', None) @@ -17,17 +17,33 @@ def get_db(): app = Flask(__name__) app.register_blueprint(filters.blueprint) +class EscapeHtml(Extension): + def extendMarkdown(self, md, md_globals): + del md.preprocessors['html_block'] + del md.inlinePatterns['html'] + +md = Markdown(app, extensions=[EscapeHtml()]) + # Load config 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 +53,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 +73,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 +161,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 +175,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():