modified: app.py

new file:   templates/admin_dashboard.html
	new file:   templates/user_dashboard.html
This commit is contained in:
SimolZimol
2024-09-06 11:55:06 +02:00
parent 9d1c67d025
commit 3d4d0499fa
3 changed files with 129 additions and 1 deletions

60
app.py
View File

@@ -126,7 +126,65 @@ def callback():
# Speichere die Benutzerinformationen in der Session # Speichere die Benutzerinformationen in der Session
session['discord_user'] = user_info session['discord_user'] = user_info
return redirect(url_for("dashboard")) # Hole Benutzerrollen und andere Daten aus der Datenbank
connection = get_db_connection()
cursor = connection.cursor(dictionary=True)
cursor.execute("SELECT permission FROM user_data WHERE user_id = %s", (user_info["id"],))
user_data = cursor.fetchone()
cursor.close()
connection.close()
# Weiterleiten basierend auf den Berechtigungen
if user_data and user_data["permission"] >= 8:
return redirect(url_for("admin_dashboard"))
else:
return redirect(url_for("user_dashboard"))
@app.route("/admin_dashboard")
def admin_dashboard():
"""Zeigt das Admin-Dashboard an (nur für Admins)."""
if "discord_user" in session:
user_info = session["discord_user"]
user_id = user_info["id"]
# Überprüfe, ob der Benutzer Admin-Rechte hat
connection = get_db_connection()
cursor = connection.cursor(dictionary=True)
cursor.execute("SELECT permission FROM user_data WHERE user_id = %s", (user_id,))
user_data = cursor.fetchone()
cursor.close()
connection.close()
if user_data and user_data["permission"] >= 8:
return render_template("admin_dashboard.html", user_info=user_info)
else:
return redirect(url_for("user_dashboard"))
return redirect(url_for("login"))
@app.route("/user_dashboard")
def user_dashboard():
"""Zeigt das User-Dashboard an."""
if "discord_user" in session:
user_info = session["discord_user"]
user_id = user_info["id"]
connection = get_db_connection()
cursor = connection.cursor(dictionary=True)
cursor.execute("SELECT points, ban FROM user_data WHERE user_id = %s", (user_id,))
user_data = cursor.fetchone()
cursor.close()
connection.close()
if user_data:
return render_template("user_dashboard.html", user_info=user_info, user_data=user_data)
else:
return "User data not found", 404
return redirect(url_for("login"))
@app.route("/dashboard") @app.route("/dashboard")
def dashboard(): def dashboard():

View File

@@ -0,0 +1,33 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin Dashboard</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">Multus Bot - Admin Dashboard</a>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link" href="{{ url_for('user_dashboard') }}">Switch to User View</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ url_for('logout') }}">Logout</a>
</li>
</ul>
</div>
</nav>
<div class="container mt-5">
<h1 class="text-center">Welcome, {{ user_info.username }} (Admin)</h1>
<p class="text-center">Here you can manage the system and users.</p>
<div class="text-center">
<a href="{{ url_for('users') }}" class="btn btn-primary">Manage Users</a>
<a href="{{ url_for('logs') }}" class="btn btn-secondary">View Logs</a>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>User Dashboard</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">Multus Bot - User Dashboard</a>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ml-auto">
{% if user_info %}
<li class="nav-item">
<a class="nav-link" href="{{ url_for('logout') }}">Logout</a>
</li>
{% if user_data.permission >= 8 %}
<li class="nav-item">
<a class="nav-link" href="{{ url_for('admin_dashboard') }}">Switch to Admin</a>
</li>
{% endif %}
{% endif %}
</ul>
</div>
</nav>
<div class="container mt-5">
<h1 class="text-center">Welcome, {{ user_info.username }}</h1>
<p class="text-center">Here you can see your personal data.</p>
<div class="text-center">
<p><strong>Points:</strong> {{ user_data.points }}</p>
<p><strong>Status:</strong> {{ "Banned" if user_data.ban else "Active" }}</p>
</div>
</div>
</body>
</html>