modified: app.py
new file: templates/admin_dashboard.html new file: templates/user_dashboard.html
This commit is contained in:
60
app.py
60
app.py
@@ -126,7 +126,65 @@ def callback():
|
||||
# Speichere die Benutzerinformationen in der Session
|
||||
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")
|
||||
def dashboard():
|
||||
|
||||
33
templates/admin_dashboard.html
Normal file
33
templates/admin_dashboard.html
Normal 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>
|
||||
37
templates/user_dashboard.html
Normal file
37
templates/user_dashboard.html
Normal 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>
|
||||
Reference in New Issue
Block a user