From a6ae67c26bfc47737f89ac3ff6b4dcbf94b2de43 Mon Sep 17 00:00:00 2001 From: elias Date: Tue, 18 Aug 2026 18:57:50 +0200 Subject: [PATCH] AstraOS Ver. 1.44 Benachrichtigungen gefixt, Overrider der Discord Verifikation Funktion --- AstraOS/Frontend/HTML/notifications.html | 7 +++++- AstraOS/Frontend/HTML/sidebar.html | 2 +- AstraOS/Frontend/HTML/user_management.html | 16 ++++++++++++++ AstraOS/astra_os.py | 25 ++++++++++++++++++++-- 4 files changed, 46 insertions(+), 4 deletions(-) diff --git a/AstraOS/Frontend/HTML/notifications.html b/AstraOS/Frontend/HTML/notifications.html index 2266c87..441da44 100644 --- a/AstraOS/Frontend/HTML/notifications.html +++ b/AstraOS/Frontend/HTML/notifications.html @@ -3,11 +3,16 @@ {% block title %}AstraOS — Benachrichtigungen{% endblock %} {% block content %} + +
+ data-open="{% if active_page in ['user_management', 'role_management', 'maintenance_management', 'logs', 'notifications'] %}true{% else %}false{% endif %}"> Administration diff --git a/AstraOS/Frontend/HTML/user_management.html b/AstraOS/Frontend/HTML/user_management.html index 2abfdfd..3fe412f 100644 --- a/AstraOS/Frontend/HTML/user_management.html +++ b/AstraOS/Frontend/HTML/user_management.html @@ -49,6 +49,7 @@ Rolle Discord Status + DC Override Erstellt am Aktionen @@ -74,6 +75,21 @@ Deaktiviert {% endif %} + +
+ + +
+ {{ user_table_item.creation_date.strftime('%d.%m.%Y') if user_table_item.creation_date else 'N/A' }} diff --git a/AstraOS/astra_os.py b/AstraOS/astra_os.py index c7183c3..17b444d 100644 --- a/AstraOS/astra_os.py +++ b/AstraOS/astra_os.py @@ -622,7 +622,7 @@ def login_required(f): session.clear() return redirect(url_for('account_disabled')) - if not user.get('discord_id') and request.endpoint not in ['link_discord', 'login_discord', 'callback_discord', 'logout', 'static']: + if not user.get('discord_id') and not user.get('discord_override', False) and request.endpoint not in ['link_discord', 'login_discord', 'callback_discord', 'logout', 'static']: return redirect(url_for('link_discord')) session['permissions'] = get_user_permissions(session['user_id']) @@ -676,7 +676,7 @@ def login(): session['permissions'] = get_user_permissions(str(user['_id'])) add_log("Benutzer-Login") - if not user.get('discord_id'): + if not user.get('discord_id') and not user.get('discord_override', False): flash("Bitte verknüpfe deinen Discord-Account, um fortzufahren.", "info") return redirect(url_for('link_discord')) @@ -966,6 +966,27 @@ def toggle_user_status(user_id): accounts_collection.update_one({'_id': ObjectId(user_id)}, {'$set': update_data}) return redirect(url_for('user_management')) +@app.route('/toggle_discord_override/', methods=['POST']) +@login_required +@permission_required('manage_users') +def toggle_discord_override(user_id): + if accounts_collection is None: + flash("Datenbankverbindung nicht verfügbar.", "danger") + return redirect(url_for('user_management')) + user = accounts_collection.find_one({'_id': ObjectId(user_id)}) + if not user: + flash("Benutzer nicht gefunden.", "danger") + return redirect(url_for('user_management')) + new_override = not user.get('discord_override', False) + accounts_collection.update_one( + {'_id': ObjectId(user_id)}, + {'$set': {'discord_override': new_override}} + ) + state = "aktiviert" if new_override else "deaktiviert" + add_log("Discord-Override geändert", f"Benutzername: {user.get('username')}, Override: {state}") + flash(f"Discord-Override für '{user.get('username')}' wurde {state}.", "success") + return redirect(url_for('user_management')) + @app.route('/account_disabled') def account_disabled(): return render_template('account_disabled.html')