modified: app.py

modified:   requirements.txt
This commit is contained in:
SimolZimol
2024-10-24 14:26:32 +02:00
parent b2d9ff1c2e
commit dadd8a69d1
2 changed files with 23 additions and 5 deletions

23
app.py
View File

@@ -9,11 +9,14 @@ import subprocess
import psutil import psutil
import mysql.connector import mysql.connector
from datetime import datetime from datetime import datetime
from flask_session import Session
app = Flask(__name__) app = Flask(__name__)
app.secret_key = os.getenv("FLASK_SECRET_KEY") 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
Session(app)
# Verwende Umgebungsvariablen für die Datenbankverbindung # Verwende Umgebungsvariablen für die Datenbankverbindung
DB_HOST = os.getenv("DB_HOST") DB_HOST = os.getenv("DB_HOST")
@@ -138,7 +141,6 @@ 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(
@@ -161,16 +163,31 @@ def callback():
return redirect(url_for("landing_page")) return redirect(url_for("landing_page"))
guilds = guilds_response.json() guilds = guilds_response.json()
session['discord_guilds'] = guilds # Speichere die Gilden in der Session session['discord_guilds'] = guilds
# Leite den Benutzer zur neuen User-Landing-Page weiter # Prüfe die Admin-Berechtigungen in der bot_data Tabelle
connection = get_db_connection()
cursor = connection.cursor(dictionary=True)
cursor.execute("SELECT global_permission FROM bot_data WHERE user_id = %s", (user_info["id"],))
bot_admin_data = cursor.fetchone()
cursor.close()
connection.close()
if bot_admin_data and bot_admin_data['global_permission'] >= 8:
# Admin-Rechte vorhanden
return redirect(url_for("user_landing_page")) return redirect(url_for("user_landing_page"))
else:
flash("Sie haben keine Admin-Rechte für diesen Bot.", "danger")
return redirect(url_for("landing_page"))
except Exception as e: except Exception as e:
print(f"Error in OAuth2 callback: {e}") print(f"Error in OAuth2 callback: {e}")
flash("Ein Fehler ist beim Authentifizierungsprozess aufgetreten.", "danger") flash("Ein Fehler ist beim Authentifizierungsprozess aufgetreten.", "danger")
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."""

View File

@@ -14,3 +14,4 @@ python-dotenv
flask flask
psutil psutil
requests_oauthlib requests_oauthlib
Flask-Session