Entferne nicht mehr benötigte Skripte: Lösche die Dateien check_schema.py, create_default_users.py, fix_user_table.py, test_app.py und windows_setup.bat, um die Projektstruktur zu optimieren und veraltete Komponenten zu entfernen.
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
34
utils/check_schema.py
Normal file
34
utils/check_schema.py
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sqlite3
|
||||
|
||||
# Verbindung zur Datenbank herstellen
|
||||
conn = sqlite3.connect('systades.db')
|
||||
cursor = conn.cursor()
|
||||
|
||||
# Liste aller Tabellen abrufen
|
||||
print("Alle Tabellen in der Datenbank:")
|
||||
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
|
||||
tables = cursor.fetchall()
|
||||
for table in tables:
|
||||
print(f"- {table[0]}")
|
||||
|
||||
# Schema der Datenbank abrufen
|
||||
cursor.execute("SELECT sql FROM sqlite_master WHERE type='table';")
|
||||
schemas = cursor.fetchall()
|
||||
|
||||
# Schematische Informationen ausgeben
|
||||
print("\nDatenbankschema:")
|
||||
for schema in schemas:
|
||||
print("\n" + str(schema[0]))
|
||||
|
||||
# Schema der User-Tabelle genauer untersuchen, falls vorhanden
|
||||
if ('user',) in tables:
|
||||
print("\n\nBenutzer-Tabellenschema:")
|
||||
cursor.execute("PRAGMA table_info(user);")
|
||||
user_columns = cursor.fetchall()
|
||||
for column in user_columns:
|
||||
print(f"Column: {column[1]}, Type: {column[2]}, NOT NULL: {column[3]}, Default: {column[4]}, Primary Key: {column[5]}")
|
||||
|
||||
conn.close()
|
||||
72
utils/create_default_users.py
Normal file
72
utils/create_default_users.py
Normal file
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sqlite3
|
||||
import os
|
||||
from werkzeug.security import generate_password_hash
|
||||
from datetime import datetime
|
||||
|
||||
# Prüfen, ob die Datenbank existiert
|
||||
db_path = 'systades.db'
|
||||
if not os.path.exists(db_path):
|
||||
print(f"Datenbank {db_path} existiert nicht.")
|
||||
exit(1)
|
||||
|
||||
# Verbindung zur Datenbank herstellen
|
||||
conn = sqlite3.connect(db_path)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# Überprüfen, ob bereits Benutzer vorhanden sind
|
||||
cursor.execute("SELECT COUNT(*) FROM user;")
|
||||
user_count = cursor.fetchone()[0]
|
||||
|
||||
if user_count == 0:
|
||||
print("Keine Benutzer in der Datenbank gefunden. Erstelle Standardbenutzer...")
|
||||
|
||||
# Standardbenutzer definieren
|
||||
default_users = [
|
||||
{
|
||||
'username': 'admin',
|
||||
'email': 'admin@example.com',
|
||||
'password': generate_password_hash('admin'),
|
||||
'created_at': datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'is_active': 1,
|
||||
'role': 'admin'
|
||||
},
|
||||
{
|
||||
'username': 'user',
|
||||
'email': 'user@example.com',
|
||||
'password': generate_password_hash('user'),
|
||||
'created_at': datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'is_active': 1,
|
||||
'role': 'user'
|
||||
}
|
||||
]
|
||||
|
||||
# Benutzer einfügen
|
||||
for user in default_users:
|
||||
cursor.execute("""
|
||||
INSERT INTO user (username, email, password, created_at, is_active, role)
|
||||
VALUES (?, ?, ?, ?, ?, ?);
|
||||
""", (
|
||||
user['username'],
|
||||
user['email'],
|
||||
user['password'],
|
||||
user['created_at'],
|
||||
user['is_active'],
|
||||
user['role']
|
||||
))
|
||||
conn.commit()
|
||||
print(f"{len(default_users)} Standardbenutzer wurden erstellt.")
|
||||
else:
|
||||
print(f"Es sind bereits {user_count} Benutzer in der Datenbank vorhanden.")
|
||||
|
||||
# Überprüfen der eingefügten Benutzer
|
||||
print("\nBenutzer in der Datenbank:")
|
||||
cursor.execute("SELECT id, username, email, role FROM user;")
|
||||
users = cursor.fetchall()
|
||||
for user in users:
|
||||
print(f"ID: {user[0]}, Benutzername: {user[1]}, E-Mail: {user[2]}, Rolle: {user[3]}")
|
||||
|
||||
conn.close()
|
||||
print("\nBenutzeraktualisierung abgeschlossen.")
|
||||
70
utils/fix_user_table.py
Normal file
70
utils/fix_user_table.py
Normal file
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sqlite3
|
||||
import os
|
||||
|
||||
# Prüfen, ob die Datenbank existiert
|
||||
db_path = 'systades.db'
|
||||
if not os.path.exists(db_path):
|
||||
print(f"Datenbank {db_path} existiert nicht.")
|
||||
exit(1)
|
||||
|
||||
# Verbindung zur Datenbank herstellen
|
||||
conn = sqlite3.connect(db_path)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# Prüfen, ob die User-Tabelle existiert
|
||||
cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='user';")
|
||||
if not cursor.fetchone():
|
||||
print("Die Tabelle 'user' existiert nicht. Erstelle neue Tabelle...")
|
||||
cursor.execute('''
|
||||
CREATE TABLE user (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
username VARCHAR(80) NOT NULL UNIQUE,
|
||||
email VARCHAR(120) NOT NULL UNIQUE,
|
||||
password VARCHAR(512) NOT NULL,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
is_active BOOLEAN DEFAULT 1,
|
||||
role VARCHAR(20) DEFAULT 'user'
|
||||
)
|
||||
''')
|
||||
conn.commit()
|
||||
print("Die Tabelle 'user' wurde erfolgreich erstellt.")
|
||||
else:
|
||||
# Überprüfen, ob die Spalte 'password' existiert
|
||||
cursor.execute("PRAGMA table_info(user);")
|
||||
columns = cursor.fetchall()
|
||||
column_names = [column[1] for column in columns]
|
||||
|
||||
if 'password' not in column_names:
|
||||
print("Die Spalte 'password' fehlt in der Tabelle 'user'. Füge Spalte hinzu...")
|
||||
cursor.execute("ALTER TABLE user ADD COLUMN password VARCHAR(512);")
|
||||
conn.commit()
|
||||
print("Die Spalte 'password' wurde erfolgreich hinzugefügt.")
|
||||
else:
|
||||
print("Die Spalte 'password' existiert bereits in der Tabelle 'user'.")
|
||||
|
||||
# Überprüfen der aktualisierten Spaltenstruktur
|
||||
print("\nAktualisierte Tabellenspalten der 'user'-Tabelle:")
|
||||
cursor.execute("PRAGMA table_info(user);")
|
||||
updated_columns = cursor.fetchall()
|
||||
for column in updated_columns:
|
||||
print(f"Column: {column[1]}, Type: {column[2]}, NOT NULL: {column[3]}, Default: {column[4]}, Primary Key: {column[5]}")
|
||||
|
||||
# Datenbanktabellen anzeigen
|
||||
print("\nAlle Tabellen in der Datenbank:")
|
||||
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
|
||||
tables = cursor.fetchall()
|
||||
for table in tables:
|
||||
print(f"- {table[0]}")
|
||||
|
||||
# Schemaüberprüfung der user-Tabelle
|
||||
print("\nSchema der 'user'-Tabelle:")
|
||||
cursor.execute("SELECT sql FROM sqlite_master WHERE type='table' AND name='user';")
|
||||
schema = cursor.fetchone()
|
||||
if schema:
|
||||
print(schema[0])
|
||||
|
||||
conn.close()
|
||||
print("\nDatenbankaktualisierung abgeschlossen.")
|
||||
60
utils/test_app.py
Normal file
60
utils/test_app.py
Normal file
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sqlite3
|
||||
import os
|
||||
import requests
|
||||
import time
|
||||
|
||||
print("Systades Anwendungstest")
|
||||
print("=======================")
|
||||
|
||||
# Prüfen, ob die Datenbank existiert
|
||||
db_path = 'systades.db'
|
||||
if not os.path.exists(db_path):
|
||||
print(f"Datenbank {db_path} existiert nicht.")
|
||||
exit(1)
|
||||
|
||||
# Datenbankprüfung
|
||||
conn = sqlite3.connect(db_path)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# Prüfen, ob die User-Tabelle existiert und Benutzer enthält
|
||||
cursor.execute("SELECT COUNT(*) FROM user;")
|
||||
user_count = cursor.fetchone()[0]
|
||||
print(f"Anzahl der Benutzer in der Datenbank: {user_count}")
|
||||
|
||||
if user_count == 0:
|
||||
print("WARNUNG: Keine Benutzer in der Datenbank gefunden!")
|
||||
print("Bitte führen Sie das Skript 'create_default_users.py' aus, um Standardbenutzer zu erstellen.")
|
||||
conn.close()
|
||||
exit(1)
|
||||
|
||||
# Tabellenschema prüfen
|
||||
cursor.execute("PRAGMA table_info(user);")
|
||||
columns = cursor.fetchall()
|
||||
column_names = [column[1] for column in columns]
|
||||
print(f"Spalten in der User-Tabelle: {', '.join(column_names)}")
|
||||
|
||||
# Überprüfen, ob die password-Spalte existiert
|
||||
if 'password' not in column_names:
|
||||
print("FEHLER: Die Spalte 'password' fehlt in der Tabelle 'user'!")
|
||||
print("Bitte führen Sie das Skript 'fix_user_table.py' aus, um die Datenbank zu reparieren.")
|
||||
conn.close()
|
||||
exit(1)
|
||||
|
||||
# Benutzer für Testlogin abrufen
|
||||
cursor.execute("SELECT username, email FROM user LIMIT 1;")
|
||||
test_user = cursor.fetchone()
|
||||
if test_user:
|
||||
print(f"Testbenutzer für Login: {test_user[0]} (E-Mail: {test_user[1]})")
|
||||
else:
|
||||
print("FEHLER: Konnte keinen Testbenutzer abrufen.")
|
||||
|
||||
conn.close()
|
||||
|
||||
print("\nDie Datenbank scheint korrekt konfiguriert zu sein.")
|
||||
print("Sie können nun die Anwendung starten und sich mit den folgenden Zugangsdaten anmelden:")
|
||||
print(" Admin: username=admin, password=admin")
|
||||
print(" User: username=user, password=user")
|
||||
print("\nTest abgeschlossen.")
|
||||
Reference in New Issue
Block a user