added external server settings save to the settings page
This commit is contained in:
@@ -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'))
|
||||
Reference in New Issue
Block a user