From cfa862d4e5643e6476541176fb3f442a81da0e04 Mon Sep 17 00:00:00 2001 From: wiktr Date: Tue, 25 Aug 2026 15:20:19 +0200 Subject: [PATCH] partial frontend rewrite --- app/main.py | 46 ++++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/app/main.py b/app/main.py index ec3ba88..698f836 100644 --- a/app/main.py +++ b/app/main.py @@ -1,5 +1,6 @@ from flask import Flask, jsonify, request, render_template, redirect, session, flash import auth +import db import re from os import environ, urandom @@ -76,13 +77,13 @@ def dashboard(): if session.get("USERID") is None: return redirect("/") userid = session.get("USERID") - username = auth.get_username(DB_PATH, userid) - domains = auth.get_user_domains(DB_PATH, userid) - tokens = auth.get_user_tokens(DB_PATH, userid) + username = db.User.get_username(DB_PATH, userid) + domains = db.User.get_domains(DB_PATH, userid) + tokens = db.User.get_token_names(DB_PATH, userid) # If user is admin, display additional options - if auth.is_admin(DB_PATH, userid): - users = auth.get_users(DB_PATH) + if db.User.is_admin(DB_PATH, userid): + users = db.list_users(DB_PATH) return render_template("dashboard.html", username=username, domains=domains, tokens=tokens, is_admin=True, users=users) return render_template("dashboard.html", username=username, domains=domains, tokens=tokens, is_admin=False) @@ -99,7 +100,7 @@ def generate_token(): if request.form["token"].strip() == "": return redirect("/dashboard") - token = auth.generate_user_token(DB_PATH, session.get("USERID"), request.form["token"]) + token = db.User.generate_token(DB_PATH, session.get("USERID"), request.form["token"]) if token is not None: flash(token) @@ -118,7 +119,7 @@ def revoke_token(): if request.form["token"].strip() == "": return redirect("/dashboard") - auth.revoke_user_token(DB_PATH, session.get("USERID"), request.form["token"]) + db.User.revoke_token(DB_PATH, session.get("USERID"), request.form["token"]) return redirect("/dashboard") @@ -128,7 +129,7 @@ def revoke_token(): def create_user(): if session.get("USERID") is None: return redirect("/") - if not auth.is_admin(DB_PATH, session.get("USERID")): + if not db.User.is_admin(DB_PATH, session.get("USERID")): return redirect("/dashboard") if 'username' not in request.form or 'password' not in request.form: @@ -148,7 +149,7 @@ def create_user(): is_admin = request.form.get("is_admin") is not None - flash(auth.create_user(DB_PATH, username, password, domains, is_admin, request.form.get('email'))) + flash(db.User.new(DB_PATH, username, password, domains, is_admin, request.form.get('email'))) return redirect("/dashboard") @@ -158,7 +159,7 @@ def create_user(): def update_user(): if session.get("USERID") is None: return redirect("/") - if not auth.is_admin(DB_PATH, session.get("USERID")): + if not db.User.is_admin(DB_PATH, session.get("USERID")): return redirect("/dashboard") userid = request.form.get("userid") @@ -170,23 +171,26 @@ def update_user(): return redirect("/dashboard") domains = request.form.get('domains') - if domains is not None: collapse_exp = re.compile(r'\s+') domains = collapse_exp.sub(' ', domains.strip()) domains = domains.split(" ") + db.User.set_domains(DB_PATH, userid, domains) password = request.form.get("password") + if password is not None: + db.User.set_password(DB_PATH, userid, password) is_admin = request.form.get("is_admin") - print(is_admin, flush=True) if is_admin is not None: is_admin = is_admin == "true" - print(is_admin, flush=True) + db.User.set_admin(DB_PATH, userid, is_admin) email = request.form.get("email") - - auth.update_user(DB_PATH, userid, domains, password, is_admin, email) + if email is not None: + if email == "": + email = None + db.User.set_email(DB_PATH, userid, email) return redirect("/dashboard") @@ -196,7 +200,7 @@ def update_user(): def delete_user(): if session.get("USERID") is None: return redirect("/") - if not auth.is_admin(DB_PATH, session.get("USERID")): + if not db.User.is_admin(DB_PATH, session.get("USERID")): return redirect("/dashboard") userid = request.form.get("userid") @@ -207,7 +211,7 @@ def delete_user(): except ValueError: return redirect("/dashboard") - auth.delete_user(DB_PATH, userid) + db.User.delete(DB_PATH, userid) return redirect("/dashboard") @@ -232,8 +236,10 @@ def change_password(): flash("passwords do not match") return redirect("/dashboard") - if not auth.change_user_password(DB_PATH, session.get("USERID"), oldpass, newpass): - flash("password change failed") + try: + auth.change_user_password(DB_PATH, session.get("USERID"), oldpass, newpass) + except ValueError as e: + flash(str(e)) return redirect("/dashboard") flash("password changed successfully") @@ -286,5 +292,5 @@ def update_addr(): if __name__ == '__main__': - auth.init_db(DB_PATH) + db.init(DB_PATH) app.run(host="0.0.0.0", port=8080, debug=False)