modified: app.py
modified: requirements.txt
This commit is contained in:
23
app.py
23
app.py
@@ -9,11 +9,14 @@ import subprocess
|
||||
import psutil
|
||||
import mysql.connector
|
||||
from datetime import datetime
|
||||
from flask_session import Session
|
||||
|
||||
app = Flask(__name__)
|
||||
app.secret_key = os.getenv("FLASK_SECRET_KEY")
|
||||
|
||||
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
|
||||
DB_HOST = os.getenv("DB_HOST")
|
||||
@@ -138,7 +141,6 @@ def login():
|
||||
|
||||
@app.route("/callback")
|
||||
def callback():
|
||||
"""Verarbeitet den OAuth2-Rückruf von Discord."""
|
||||
try:
|
||||
discord = make_discord_session(state=session.get("oauth_state"))
|
||||
token = discord.fetch_token(
|
||||
@@ -161,16 +163,31 @@ def callback():
|
||||
return redirect(url_for("landing_page"))
|
||||
|
||||
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"))
|
||||
else:
|
||||
flash("Sie haben keine Admin-Rechte für diesen Bot.", "danger")
|
||||
return redirect(url_for("landing_page"))
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error in OAuth2 callback: {e}")
|
||||
flash("Ein Fehler ist beim Authentifizierungsprozess aufgetreten.", "danger")
|
||||
return redirect(url_for("landing_page"))
|
||||
|
||||
|
||||
@app.route("/user_server_data/<int:guild_id>")
|
||||
def user_server_data(guild_id):
|
||||
"""Zeigt die serverbezogenen Nutzerdaten für den ausgewählten Server an."""
|
||||
|
||||
@@ -14,3 +14,4 @@ python-dotenv
|
||||
flask
|
||||
psutil
|
||||
requests_oauthlib
|
||||
Flask-Session
|
||||
Reference in New Issue
Block a user