added external server settings save to the settings page

This commit is contained in:
2025-04-17 13:42:46 +03:00
parent b35ba3fbe9
commit fc355333cb
7 changed files with 166 additions and 17 deletions

View File

@@ -1,4 +1,5 @@
from flask import Blueprint, render_template, redirect, url_for, request, flash, session
import os
from flask import Blueprint, render_template, redirect, url_for, request, flash, session, current_app
from .models import User
from . import db
@@ -32,7 +33,17 @@ def settings():
# Fetch all users from the database
users = User.query.all()
return render_template('settings.html', users=users)
# Load external database settings from the instance folder
external_settings = {}
settings_file = os.path.join(current_app.instance_path, 'external_server.conf')
if os.path.exists(settings_file):
with open(settings_file, 'r') as f:
for line in f:
key, value = line.strip().split('=', 1)
external_settings[key] = value
return render_template('settings.html', users=users, external_settings=external_settings)
@bp.route('/quality')
def quality():
@@ -128,4 +139,30 @@ def delete_user():
db.session.commit()
flash('User deleted successfully.')
return redirect(url_for('main.settings'))
@bp.route('/save_external_db', methods=['POST'])
def save_external_db():
if 'role' not in session or session['role'] != 'superadmin':
flash('Access denied: Superadmin only.')
return redirect(url_for('main.settings'))
# Get form data
server_domain = request.form['server_domain']
port = request.form['port']
database_name = request.form['database_name']
username = request.form['username']
password = request.form['password']
# Save data to a file in the instance folder
settings_file = os.path.join(current_app.instance_path, 'external_server.conf')
os.makedirs(os.path.dirname(settings_file), exist_ok=True)
with open(settings_file, 'w') as f:
f.write(f"server_domain={server_domain}\n")
f.write(f"port={port}\n")
f.write(f"database_name={database_name}\n")
f.write(f"username={username}\n")
f.write(f"password={password}\n")
flash('External database settings saved/updated successfully.')
return redirect(url_for('main.settings'))