80 lines
3.1 KiB
Python
80 lines
3.1 KiB
Python
#!/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() |