updated settings page
This commit is contained in:
@@ -172,37 +172,41 @@ def settings_handler():
|
||||
flash('Access denied: Superadmin only.')
|
||||
return redirect(url_for('main.dashboard'))
|
||||
|
||||
# Get users from external MariaDB database
|
||||
# Get users from external MariaDB database with modules (same logic as user_management_simple)
|
||||
users = []
|
||||
try:
|
||||
conn = get_external_db_connection()
|
||||
cursor = conn.cursor()
|
||||
|
||||
# Create users table if it doesn't exist
|
||||
cursor.execute('''
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
username VARCHAR(50) UNIQUE NOT NULL,
|
||||
password VARCHAR(255) NOT NULL,
|
||||
role VARCHAR(50) NOT NULL,
|
||||
email VARCHAR(255)
|
||||
)
|
||||
''')
|
||||
|
||||
# Get all users from external database
|
||||
cursor.execute("SELECT id, username, password, role, email FROM users")
|
||||
users_data = cursor.fetchall()
|
||||
|
||||
# Convert to list of dictionaries for template compatibility
|
||||
users = []
|
||||
for user_data in users_data:
|
||||
users.append({
|
||||
'id': user_data[0],
|
||||
'username': user_data[1],
|
||||
'password': user_data[2],
|
||||
'role': user_data[3],
|
||||
'email': user_data[4] if len(user_data) > 4 else None
|
||||
})
|
||||
# Check if users table exists and get users with modules
|
||||
cursor.execute("SHOW TABLES LIKE 'users'")
|
||||
if cursor.fetchone():
|
||||
cursor.execute("SELECT id, username, role, modules FROM users")
|
||||
for row in cursor.fetchall():
|
||||
user_data = {
|
||||
'id': row[0],
|
||||
'username': row[1],
|
||||
'role': row[2],
|
||||
'modules': row[3] if len(row) > 3 else None
|
||||
}
|
||||
# Create a mock user object with get_modules method
|
||||
class MockUser:
|
||||
def __init__(self, data):
|
||||
self.id = data['id']
|
||||
self.username = data['username']
|
||||
self.role = data['role']
|
||||
self.modules = data['modules']
|
||||
|
||||
def get_modules(self):
|
||||
if not self.modules:
|
||||
return []
|
||||
try:
|
||||
import json
|
||||
return json.loads(self.modules)
|
||||
except:
|
||||
return []
|
||||
|
||||
users.append(MockUser(user_data))
|
||||
|
||||
conn.close()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user