diff --git a/app.py b/app.py index 1ad07ac..904e84b 100644 --- a/app.py +++ b/app.py @@ -9,7 +9,7 @@ import db import forms import models import const -from config import Config, roles +from config import Config logging.basicConfig(filename=const.LOG_PATH, level=logging.DEBUG) @@ -44,7 +44,7 @@ def close_connection(exception): def set_user_role(data): """Set the users role in the flask g object for later usage""" - g.is_editor = data == "editor" + g.is_editor = data == "write" def authorize(func): @@ -59,17 +59,24 @@ def authorize(func): return wrapper +def get_role(password): + if password == Config.WRITE_PW: + return "write" + if password == Config.READ_PW: + return "read" + return False + + @app.route("/login", methods=["GET", "POST"]) def login(): if request.method == "GET": return render_template("login.html") else: - try: - password = request.form["password"] - session["role"] = roles()[password] - return redirect("/") - except KeyError: - return redirect("login") + role = get_role(request.form.get("password")) + if not role: + return redirect("/login") + session["role"] = role + return redirect("/") @app.route("/logout") diff --git a/conf.sh b/conf.sh new file mode 100644 index 0000000..2443548 --- /dev/null +++ b/conf.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +export READ_PW="" +export WRITE_PW="" +export SECRET_KEY="" \ No newline at end of file diff --git a/config.py b/config.py index aca523f..3422e50 100644 --- a/config.py +++ b/config.py @@ -1,11 +1,7 @@ -import json import os -def roles(): - with open("roles.json", "r") as f: - return json.load(f) - - class Config: SECRET_KEY = os.environ.get("ES_SECRET_KEY") + WRITE_PW = os.environ.get("ES_WRITE_PW") + READ_PW = os.environ.get("ES_READ_PW") diff --git a/roles.json b/roles.json deleted file mode 100644 index 372eb9a..0000000 --- a/roles.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "": "editor", - "