From a2db1585de8f28ffb3f7ea4ed1936fe84b1b93d7 Mon Sep 17 00:00:00 2001 From: SimolZimol <70102430+SimolZimol@users.noreply.github.com> Date: Wed, 1 Apr 2026 03:04:38 +0200 Subject: [PATCH] modified: web/blueprints/site_admin.py modified: web/panel_db.py modified: web/templates/admin/user_edit.html --- web/blueprints/site_admin.py | 6 ++++++ web/panel_db.py | 4 ++++ web/templates/admin/user_edit.html | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/web/blueprints/site_admin.py b/web/blueprints/site_admin.py index f48eb39..bb437d7 100644 --- a/web/blueprints/site_admin.py +++ b/web/blueprints/site_admin.py @@ -167,6 +167,8 @@ def user_new(): flash("All fields are required.", "danger") elif db.get_user_by_username(username): flash("Username already taken.", "danger") + elif db.get_user_by_email(email): + flash("Email address already in use.", "danger") else: db.create_user(username, email, password, is_site_admin) flash(f"User '{username}' created.", "success") @@ -186,6 +188,10 @@ def user_edit(user_id): email = request.form.get("email", "").strip() is_site_admin = request.form.get("is_site_admin") == "1" new_password = request.form.get("new_password", "") + existing = db.get_user_by_email(email) + if existing and existing["id"] != user_id: + flash("Email address already in use.", "danger") + return render_template("admin/user_edit.html", user=user) db.update_user(user_id, username, email, is_site_admin) if new_password: db.change_password(user_id, new_password) diff --git a/web/panel_db.py b/web/panel_db.py index 9d11e0f..0a5f1be 100644 --- a/web/panel_db.py +++ b/web/panel_db.py @@ -150,6 +150,10 @@ def get_user_by_username(username: str): return _panel_query("SELECT * FROM users WHERE username=%s", (username,), fetchone=True) +def get_user_by_email(email: str): + return _panel_query("SELECT * FROM users WHERE email=%s", (email,), fetchone=True) + + def get_user_by_id(user_id: int): return _panel_query("SELECT * FROM users WHERE id=%s", (user_id,), fetchone=True) diff --git a/web/templates/admin/user_edit.html b/web/templates/admin/user_edit.html index bbda1a5..f093996 100644 --- a/web/templates/admin/user_edit.html +++ b/web/templates/admin/user_edit.html @@ -25,7 +25,7 @@