add admin panel

This commit is contained in:
Mathias DUPEUX 2025-04-17 23:27:25 +02:00
parent ea3c737c04
commit a5d02f3efd
5 changed files with 49 additions and 3 deletions

12
main.py
View file

@ -1,4 +1,5 @@
from flask import Flask, request, make_response, render_template
from flask_basicauth import BasicAuth
from dotenv import load_dotenv
from flask_sock import Sock
from glob import glob
@ -9,6 +10,10 @@ import os
load_dotenv()
app = Flask(__name__)
sock = Sock(app)
basic_auth = BasicAuth(app)
app.config['BASIC_AUTH_USERNAME'] = os.getenv("AUTH_USERNAME")
app.config['BASIC_AUTH_PASSWORD'] = os.getenv("AUTH_PASSWORD")
def make_resp(data=''):
response = make_response(data)
@ -136,6 +141,13 @@ def websocket(ws):
if operation == "usernames": # TODO
ws.send(json.dumps({"1": "Mathias"}))
@app.route("/admin")
@basic_auth.required
def admin_panel():
users = database.db.execute_query("SELECT name, email FROM users;")
vaults = database.db.execute_query("SELECT name, (SELECT name FROM users WHERE uid=owner) FROM vaults;")
return render_template("admin.html", users=users, vaults=vaults)
@app.route("/")
def index_page():
return render_template("index.html")