modified: app.py

modified:   templates/users.html
This commit is contained in:
SimolZimol
2024-09-04 11:15:17 +02:00
parent 91bb5d3e42
commit cd06f94510
2 changed files with 112 additions and 22 deletions

88
app.py
View File

@@ -130,17 +130,101 @@ def settings():
@app.route("/users")
def users():
"""Zeigt eine Liste aller Benutzer aus der Datenbank an."""
"""Zeigt eine Liste aller Benutzer an."""
if "username" in session:
connection = get_db_connection()
cursor = connection.cursor(dictionary=True)
cursor.execute("SELECT * FROM user_data")
cursor.execute("SELECT user_id, username, permission, points, ban FROM user_data")
users = cursor.fetchall()
cursor.close()
connection.close()
return render_template("users.html", users=users)
return redirect(url_for("login"))
@app.route("/ban_user/<int:user_id>")
def ban_user(user_id):
"""Banned einen Benutzer."""
if "username" in session:
connection = get_db_connection()
cursor = connection.cursor()
try:
cursor.execute("UPDATE user_data SET ban = 1 WHERE user_id = %s", (user_id,))
connection.commit()
return redirect(url_for("users"))
except Exception as e:
print(f"Error banning user: {e}")
connection.rollback()
return redirect(url_for("users"))
finally:
cursor.close()
connection.close()
return redirect(url_for("login"))
@app.route("/update_points/<int:user_id>", methods=["POST"])
def update_points(user_id):
"""Aktualisiert die Punkte eines Benutzers."""
if "username" in session:
points_change = int(request.form["points_change"])
connection = get_db_connection()
cursor = connection.cursor()
try:
cursor.execute("UPDATE user_data SET points = points + %s WHERE user_id = %s", (points_change, user_id))
connection.commit()
return redirect(url_for("users"))
except Exception as e:
print(f"Error updating points: {e}")
connection.rollback()
return redirect(url_for("users"))
finally:
cursor.close()
connection.close()
return redirect(url_for("login"))
@app.route("/unban_user/<int:user_id>")
def unban_user(user_id):
"""Entbannt einen Benutzer."""
if "username" in session:
connection = get_db_connection()
cursor = connection.cursor()
try:
cursor.execute("UPDATE user_data SET ban = 0 WHERE user_id = %s", (user_id,))
connection.commit()
return redirect(url_for("users"))
except Exception as e:
print(f"Error unbanning user: {e}")
connection.rollback()
return redirect(url_for("users"))
finally:
cursor.close()
connection.close()
return redirect(url_for("login"))
@app.route("/update_role/<int:user_id>", methods=["POST"])
def update_role(user_id):
"""Aktualisiert die Rolle (Berechtigung) eines Benutzers."""
if "username" in session:
new_permission = request.form["permission"]
connection = get_db_connection()
cursor = connection.cursor()
try:
cursor.execute("UPDATE user_data SET permission = %s WHERE user_id = %s", (new_permission, user_id))
connection.commit()
return redirect(url_for("users"))
except Exception as e:
print(f"Error updating role: {e}")
connection.rollback()
return redirect(url_for("users"))
finally:
cursor.close()
connection.close()
return redirect(url_for("login"))
@app.route("/logs")
def view_logs():
"""Zeigt die Logs des Bots im Admin-Panel an."""

View File

@@ -9,37 +9,43 @@
<body>
<div class="container mt-5">
<h1 class="text-center">User Management</h1>
<table class="table table-striped mt-4">
<table class="table table-bordered mt-4">
<thead>
<tr>
<th>User ID</th>
<th>Username</th>
<th>Permission Level</th>
<th>Points</th>
<th>Ban Status</th>
<th>AskMultus Usage</th>
<th>Filter Value</th>
<th>Rank</th>
<th>Points Management</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{% for user in users %}
<tr>
<td>{{ user.user_id }}</td>
<td>{{ user.permission }}</td>
<td>{{ user.points }}</td>
<td>{{ 'Banned' if user.ban else 'Active' }}</td>
<td>{{ user.askmultus }}</td>
<td>{{ user.filter_value }}</td>
<td>{{ user.username }}</td>
<td>
{% if user.permission == 10 %}
Owner
{% elif user.permission == 8 %}
Admin
{% elif user.permission == 5 %}
Mod
{% else %}
User
{% endif %}
<form action="{{ url_for('update_role', user_id=user.user_id) }}" method="POST">
<select name="permission" class="form-control">
<option value="0" {% if user.permission == 0 %}selected{% endif %}>User</option>
<option value="5" {% if user.permission == 5 %}selected{% endif %}>Mod</option>
<option value="8" {% if user.permission == 8 %}selected{% endif %}>Admin</option>
<option value="10" {% if user.permission == 10 %}selected{% endif %}>Owner</option>
</select>
<button type="submit" class="btn btn-primary mt-2">Update Role</button>
</form>
</td>
<td>{{ user.points }}</td>
<td>{{ "Banned" if user.ban else "Active" }}</td>
<td>
<form action="{{ url_for('update_points', user_id=user.user_id) }}" method="POST" class="form-inline">
<input type="number" name="points_change" class="form-control mr-2" placeholder="Change Points">
<button type="submit" class="btn btn-primary">Update</button>
</form>
</td>
<td>
<a href="{{ url_for('ban_user', user_id=user.user_id) }}" class="btn btn-danger">Ban</a>
<a href="{{ url_for('unban_user', user_id=user.user_id) }}" class="btn btn-success">Unban</a>
</td>
</tr>
{% endfor %}