From cd06f94510386b4ce9c5fa88ca71afeca8a58bcf Mon Sep 17 00:00:00 2001 From: SimolZimol <70102430+SimolZimol@users.noreply.github.com> Date: Wed, 4 Sep 2024 11:15:17 +0200 Subject: [PATCH] modified: app.py modified: templates/users.html --- app.py | 88 +++++++++++++++++++++++++++++++++++++++++++- templates/users.html | 46 +++++++++++++---------- 2 files changed, 112 insertions(+), 22 deletions(-) diff --git a/app.py b/app.py index ff3c04b..3ca40ac 100644 --- a/app.py +++ b/app.py @@ -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/") +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/", 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/") +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/", 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.""" diff --git a/templates/users.html b/templates/users.html index d6cb24b..e7eae9e 100644 --- a/templates/users.html +++ b/templates/users.html @@ -9,37 +9,43 @@

User Management

- +
- + - - - + + {% for user in users %} - - - - - - + + + + + {% endfor %}
User IDUsername Permission Level Points Ban StatusAskMultus UsageFilter ValueRankPoints ManagementActions
{{ user.user_id }}{{ user.permission }}{{ user.points }}{{ 'Banned' if user.ban else 'Active' }}{{ user.askmultus }}{{ user.filter_value }}{{ user.username }} - {% if user.permission == 10 %} - Owner - {% elif user.permission == 8 %} - Admin - {% elif user.permission == 5 %} - Mod - {% else %} - User - {% endif %} +
+ + +
+
{{ user.points }}{{ "Banned" if user.ban else "Active" }} +
+ + +
+
+ Ban + Unban