modified: app.py

This commit is contained in:
SimolZimol
2024-10-24 14:55:10 +02:00
parent dadd8a69d1
commit b22153f834

18
app.py
View File

@@ -17,6 +17,7 @@ app.secret_key = os.getenv("FLASK_SECRET_KEY")
LOG_FILE_PATH = os.path.join("logs", f"{datetime.now().strftime('%Y-%m-%d')}.log") LOG_FILE_PATH = os.path.join("logs", f"{datetime.now().strftime('%Y-%m-%d')}.log")
app.config["SESSION_TYPE"] = "filesystem" # Oder 'redis' für Redis-basierte Speicherung app.config["SESSION_TYPE"] = "filesystem" # Oder 'redis' für Redis-basierte Speicherung
Session(app) Session(app)
print(f"Session Type: {app.config['SESSION_TYPE']}")
# Verwende Umgebungsvariablen für die Datenbankverbindung # Verwende Umgebungsvariablen für die Datenbankverbindung
DB_HOST = os.getenv("DB_HOST") DB_HOST = os.getenv("DB_HOST")
@@ -90,7 +91,6 @@ def make_discord_session(token=None, state=None):
) )
def is_bot_admin(): def is_bot_admin():
"""Überprüft, ob der Benutzer globale Admin-Rechte hat.""" """Überprüft, ob der Benutzer globale Admin-Rechte hat."""
if "discord_user" in session: if "discord_user" in session:
@@ -141,6 +141,7 @@ def login():
@app.route("/callback") @app.route("/callback")
def callback(): def callback():
"""Verarbeitet den OAuth2-Rückruf von Discord."""
try: try:
discord = make_discord_session(state=session.get("oauth_state")) discord = make_discord_session(state=session.get("oauth_state"))
token = discord.fetch_token( token = discord.fetch_token(
@@ -155,6 +156,9 @@ def callback():
user_info = discord.get(DISCORD_API_URL).json() user_info = discord.get(DISCORD_API_URL).json()
session['discord_user'] = user_info session['discord_user'] = user_info
# Debug-Ausgabe
print(f"User Info: {user_info}")
# Hole die Gilden (Server), auf denen der Benutzer ist # Hole die Gilden (Server), auf denen der Benutzer ist
guilds_response = discord.get('https://discord.com/api/users/@me/guilds') guilds_response = discord.get('https://discord.com/api/users/@me/guilds')
@@ -165,6 +169,9 @@ def callback():
guilds = guilds_response.json() guilds = guilds_response.json()
session['discord_guilds'] = guilds session['discord_guilds'] = guilds
# Debug-Ausgabe
print(f"Guilds: {guilds}")
# Prüfe die Admin-Berechtigungen in der bot_data Tabelle # Prüfe die Admin-Berechtigungen in der bot_data Tabelle
connection = get_db_connection() connection = get_db_connection()
cursor = connection.cursor(dictionary=True) cursor = connection.cursor(dictionary=True)
@@ -175,6 +182,9 @@ def callback():
cursor.close() cursor.close()
connection.close() connection.close()
# Debug-Ausgabe
print(f"Bot Admin Data: {bot_admin_data}")
if bot_admin_data and bot_admin_data['global_permission'] >= 8: if bot_admin_data and bot_admin_data['global_permission'] >= 8:
# Admin-Rechte vorhanden # Admin-Rechte vorhanden
return redirect(url_for("user_landing_page")) return redirect(url_for("user_landing_page"))
@@ -188,6 +198,7 @@ def callback():
return redirect(url_for("landing_page")) return redirect(url_for("landing_page"))
@app.route("/user_server_data/<int:guild_id>") @app.route("/user_server_data/<int:guild_id>")
def user_server_data(guild_id): def user_server_data(guild_id):
"""Zeigt die serverbezogenen Nutzerdaten für den ausgewählten Server an.""" """Zeigt die serverbezogenen Nutzerdaten für den ausgewählten Server an."""
@@ -221,11 +232,16 @@ def user_landing_page():
user_info = session["discord_user"] user_info = session["discord_user"]
guilds = session["discord_guilds"] guilds = session["discord_guilds"]
# Debug-Ausgabe
print(f"User Info in Session: {user_info}")
print(f"Guilds in Session: {guilds}")
return render_template("user_landing_page.html", user_info=user_info, guilds=guilds) return render_template("user_landing_page.html", user_info=user_info, guilds=guilds)
return redirect(url_for("landing_page")) return redirect(url_for("landing_page"))
@app.route("/server_selection") @app.route("/server_selection")
def server_selection(): def server_selection():
"""Zeigt dem Benutzer eine Liste aller Server an, auf denen er sich befindet und die in der Datenbank vorhanden sind.""" """Zeigt dem Benutzer eine Liste aller Server an, auf denen er sich befindet und die in der Datenbank vorhanden sind."""