From e0b77c890ed9489f664bedfa1dd7fbd248ff8d58 Mon Sep 17 00:00:00 2001 From: Nirodan Date: Tue, 17 Jun 2025 11:33:47 +0200 Subject: [PATCH] Funktionsverschiebungen 1.1 --- backend/config/__init__.py | 1 - backend/config/db_config.py | 35 -------------- backend/util/__init__.py | 1 + backend/util/db_config.py | 61 ++++++++++++++++++++++++ backend/{config => util}/setup_routes.py | 2 +- 5 files changed, 63 insertions(+), 37 deletions(-) delete mode 100644 backend/config/__init__.py delete mode 100644 backend/config/db_config.py create mode 100644 backend/util/__init__.py create mode 100644 backend/util/db_config.py rename backend/{config => util}/setup_routes.py (94%) diff --git a/backend/config/__init__.py b/backend/config/__init__.py deleted file mode 100644 index 1639c01..0000000 --- a/backend/config/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .setup_routes import setup_blueprint diff --git a/backend/config/db_config.py b/backend/config/db_config.py deleted file mode 100644 index 2094aff..0000000 --- a/backend/config/db_config.py +++ /dev/null @@ -1,35 +0,0 @@ -import os -import json -import mysql.connector -from util.logger import logger - -CONFIG_PATH = "config/db_config.json" - -def is_configured(): - return os.path.exists(CONFIG_PATH) - -def load_config(): - try: - with open(CONFIG_PATH, "r") as file: - return json.load(file) - except Exception as e: - logger.error(f"[DB-Config] Fehler beim Laden: {e}") - return None - -def save_config(config): - try: - os.makedirs("config", exist_ok=True) - with open(CONFIG_PATH, "w") as file: - json.dump(config, file, indent=2) - logger.info("[DB-Config] Konfiguration gespeichert.") - except Exception as e: - logger.error(f"[DB-Config] Fehler beim Speichern: {e}") - -def test_connection(config) -> bool: - try: - conn = mysql.connector.connect(**config) - conn.close() - return True - except Exception as e: - logger.warning(f"[DB-Check] Verbindung fehlgeschlagen: {e}") - return False diff --git a/backend/util/__init__.py b/backend/util/__init__.py new file mode 100644 index 0000000..3532068 --- /dev/null +++ b/backend/util/__init__.py @@ -0,0 +1 @@ +from util import setup_routes diff --git a/backend/util/db_config.py b/backend/util/db_config.py new file mode 100644 index 0000000..4deff0e --- /dev/null +++ b/backend/util/db_config.py @@ -0,0 +1,61 @@ +# util/db_config.py +import json +import os +import mysql.connector +from util.logger import logger + +CONFIG_PATH = "./config/db_config.json" + +def load_config(): + try: + with open(CONFIG_PATH, "r") as f: + return json.load(f) + except Exception as e: + logger.error(f"Failed to load database config: {e}") + return None + +def save_config(data): + try: + os.makedirs(os.path.dirname(CONFIG_PATH), exist_ok=True) + with open(CONFIG_PATH, "w") as f: + json.dump(data, f, indent=2) + logger.info("Database config saved.") + except Exception as e: + logger.error(f"Failed to save database config: {e}") + +def test_connection(config): + try: + conn = mysql.connector.connect(**config) + conn.close() + logger.info("Database connection successful.") + return True + except Exception as e: + logger.warning(f"Database connection failed: {e}") + return False + +def initialize_admin_user(config): + try: + conn = mysql.connector.connect(**config) + cursor = conn.cursor() + + cursor.execute(""" + CREATE TABLE IF NOT EXISTS users ( + id INT AUTO_INCREMENT PRIMARY KEY, + username VARCHAR(50) NOT NULL UNIQUE, + password VARCHAR(255) NOT NULL, + role VARCHAR(20) NOT NULL + ) + """) + cursor.execute("SELECT COUNT(*) FROM users WHERE username = 'admin'") + if cursor.fetchone()[0] == 0: + from werkzeug.security import generate_password_hash + cursor.execute( + "INSERT INTO users (username, password, role) VALUES (%s, %s, %s)", + ("admin", generate_password_hash("admin"), "admin") + ) + logger.info("Admin user created (username: admin, password: admin)") + conn.commit() + cursor.close() + conn.close() + except Exception as e: + logger.error(f"Failed to initialize admin user: {e}") diff --git a/backend/config/setup_routes.py b/backend/util/setup_routes.py similarity index 94% rename from backend/config/setup_routes.py rename to backend/util/setup_routes.py index 9a222b4..2e91dae 100644 --- a/backend/config/setup_routes.py +++ b/backend/util/setup_routes.py @@ -1,7 +1,7 @@ import time import os from flask import Blueprint, request, render_template, redirect, jsonify -from config.db_config import load_config, save_config, test_connection, is_configured +from backend.util.db_config import load_config, save_config, test_connection, is_configured from auth.setup_admin import initialize_admin_user from util.logger import logger