#!/usr/bin/env python3 """ Debug-Script für Gastanträge und Admin-Berechtigungen """ from models import get_cached_session, GuestRequest, User, UserPermission from flask_login import current_user def check_guest_requests(): """Prüfe Gastanträge nach Status""" print("=== GASTANTRÄGE STATUS ===") with get_cached_session() as db: pending = db.query(GuestRequest).filter_by(status='pending').count() approved = db.query(GuestRequest).filter_by(status='approved').count() rejected = db.query(GuestRequest).filter_by(status='rejected').count() total = db.query(GuestRequest).count() print(f"Gesamt: {total}") print(f"Pending (Wird geprüft): {pending}") print(f"Approved (Genehmigt): {approved}") print(f"Rejected (Abgelehnt): {rejected}") if pending == 0: print("\n⚠️ PROBLEM: Keine Anträge mit Status 'pending' gefunden!") print(" → Die Genehmigen/Ablehnen-Buttons werden nur bei Status 'pending' angezeigt") # Erstelle einen Test-Antrag print("\n🔧 Erstelle Test-Gastantrag...") test_request = GuestRequest( name="Test Admin", email="admin@test.de", reason="Test für Admin-Buttons", duration_min=30, status="pending" ) db.add(test_request) db.commit() print(f"✅ Test-Antrag erstellt (ID: {test_request.id})") else: print(f"\n✅ {pending} Anträge mit Status 'pending' gefunden") # Zeige pending Anträge pending_requests = db.query(GuestRequest).filter_by(status='pending').all() for req in pending_requests: print(f" ID {req.id}: {req.name} - {req.email}") def check_admin_users(): """Prüfe Admin-Benutzer und Berechtigungen""" print("\n=== ADMIN-BENUTZER ===") with get_cached_session() as db: # Alle Admins admins = db.query(User).filter_by(is_admin=True).all() print(f"Admin-Benutzer: {len(admins)}") for admin in admins: print(f" {admin.username} (ID: {admin.id}) - Email: {admin.email}") # Benutzer mit can_approve_jobs users_with_approval = db.query(User).join(UserPermission).filter( UserPermission.can_approve_jobs == True ).all() print(f"\nBenutzer mit can_approve_jobs: {len(users_with_approval)}") for user in users_with_approval: print(f" {user.username} (ID: {user.id}) - Email: {user.email}") if __name__ == "__main__": try: check_guest_requests() check_admin_users() print("\n=== LÖSUNG ===") print("1. Gehen Sie zu: http://127.0.0.1:5000/requests/overview") print("2. Öffnen Sie die Browser-Konsole (F12)") print("3. Suchen Sie nach 'Admin-Berechtigungen:' in der Konsole") print("4. Die Buttons sollten bei Anträgen mit Status 'pending' erscheinen") except Exception as e: print(f"❌ Fehler: {e}") import traceback traceback.print_exc()