04/30 Web Checker web app ver. 1.0
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
"""
|
||||
routes/admin_settings.py — Application settings (email, Groq API, etc.)
|
||||
"""
|
||||
|
||||
import logging
|
||||
from flask import Blueprint, render_template, request, redirect, url_for, flash, session
|
||||
from config import get_settings_dict, set_setting
|
||||
from models import log_action
|
||||
from utils.decorators import admin_required
|
||||
|
||||
logger = logging.getLogger("routes.admin_settings")
|
||||
admin_settings_bp = Blueprint("admin_settings", __name__, url_prefix="/admin/settings")
|
||||
|
||||
|
||||
@admin_settings_bp.route("/")
|
||||
@admin_required
|
||||
def settings():
|
||||
email_settings = get_settings_dict("email.")
|
||||
groq_settings = get_settings_dict("groq.")
|
||||
return render_template("admin/settings.html",
|
||||
email=email_settings, groq=groq_settings)
|
||||
|
||||
|
||||
@admin_settings_bp.route("/email", methods=["POST"])
|
||||
@admin_required
|
||||
def save_email():
|
||||
admin = session["user"]
|
||||
fields = [
|
||||
"email.enabled", "email.smtp_host", "email.smtp_port",
|
||||
"email.smtp_user", "email.smtp_password", "email.security",
|
||||
"email.recipients", "email.send_time",
|
||||
]
|
||||
for field in fields:
|
||||
key = field
|
||||
form_key = field.replace(".", "_")
|
||||
value = request.form.get(form_key, "")
|
||||
set_setting(key, value)
|
||||
|
||||
log_action(admin["id"], "UPDATE_EMAIL_SETTINGS", "app_settings", None,
|
||||
"Email settings updated via web UI.")
|
||||
flash("Email settings saved successfully.", "success")
|
||||
logger.info(f"Email settings updated by admin_id={admin['id']}.")
|
||||
return redirect(url_for("admin_settings.settings"))
|
||||
|
||||
|
||||
@admin_settings_bp.route("/groq", methods=["POST"])
|
||||
@admin_required
|
||||
def save_groq():
|
||||
admin = session["user"]
|
||||
set_setting("groq.api_key", request.form.get("groq_api_key", ""))
|
||||
set_setting("groq.model", request.form.get("groq_model", "llama-3.3-70b-versatile"))
|
||||
log_action(admin["id"], "UPDATE_GROQ_SETTINGS", "app_settings", None,
|
||||
"Groq API settings updated via web UI.")
|
||||
flash("Groq settings saved successfully.", "success")
|
||||
logger.info(f"Groq settings updated by admin_id={admin['id']}.")
|
||||
return redirect(url_for("admin_settings.settings"))
|
||||
Reference in New Issue
Block a user