setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "1. 🔍 Prüfe is_admin Spalte...\n"; // Prüfe ob is_admin Spalte existiert $stmt = $pdo->query("PRAGMA table_info(users)"); $columns = $stmt->fetchAll(PDO::FETCH_ASSOC); $hasAdminColumn = false; foreach ($columns as $column) { if ($column['name'] === 'is_admin') { $hasAdminColumn = true; echo " ✅ is_admin Spalte gefunden\n"; break; } } if (!$hasAdminColumn) { echo " ❌ is_admin Spalte fehlt - führen Sie fix-admin-role-database.php aus\n"; exit; } echo "\n2. 📋 Zeige alle User...\n"; // Zeige alle User $stmt = $pdo->query("SELECT id, name, email, is_admin FROM users ORDER BY is_admin DESC, name"); $users = $stmt->fetchAll(PDO::FETCH_ASSOC); if (empty($users)) { echo " ❌ Keine User gefunden\n"; } else { foreach ($users as $user) { $adminStatus = $user['is_admin'] ? '👑 Admin' : '👤 User'; echo " - {$user['name']} ({$user['email']}) - {$adminStatus}\n"; } } echo "\n3. 🧪 Test Admin-Funktionen...\n"; // Test: Mache einen User zum Admin $stmt = $pdo->prepare("SELECT id, name, email FROM users WHERE is_admin = 0 LIMIT 1"); $stmt->execute(); $testUser = $stmt->fetch(PDO::FETCH_ASSOC); if ($testUser) { echo " 📝 Teste Admin-Erstellung mit User: {$testUser['name']}\n"; // Mache User zum Admin $stmt = $pdo->prepare("UPDATE users SET is_admin = 1 WHERE id = ?"); $stmt->execute([$testUser['id']]); // Prüfe Änderung $stmt = $pdo->prepare("SELECT is_admin FROM users WHERE id = ?"); $stmt->execute([$testUser['id']]); $result = $stmt->fetch(PDO::FETCH_ASSOC); if ($result['is_admin']) { echo " ✅ Admin-Erstellung erfolgreich\n"; } else { echo " ❌ Admin-Erstellung fehlgeschlagen\n"; } // Mache User wieder zurück $stmt = $pdo->prepare("UPDATE users SET is_admin = 0 WHERE id = ?"); $stmt->execute([$testUser['id']]); echo " 🔄 User-Status zurückgesetzt\n"; } else { echo " ℹ️ Alle User sind bereits Admins\n"; } echo "\n4. 🔐 Prüfe Admin-Middleware...\n"; // Prüfe ob AdminMiddleware existiert if (file_exists('app/Http/Middleware/AdminMiddleware.php')) { echo " ✅ AdminMiddleware gefunden\n"; $content = file_get_contents('app/Http/Middleware/AdminMiddleware.php'); if (strpos($content, 'isAdmin()') !== false) { echo " ✅ AdminMiddleware verwendet isAdmin() Methode\n"; } else { echo " ⚠️ AdminMiddleware verwendet möglicherweise alte Email-Prüfung\n"; } } else { echo " ❌ AdminMiddleware nicht gefunden\n"; } echo "\n5. 👤 Prüfe User Model...\n"; // Prüfe ob User Model isAdmin() Methode hat if (file_exists('app/Models/User.php')) { echo " ✅ User Model gefunden\n"; $content = file_get_contents('app/Models/User.php'); if (strpos($content, 'isAdmin()') !== false) { echo " ✅ User Model hat isAdmin() Methode\n"; } else { echo " ❌ User Model hat keine isAdmin() Methode\n"; } if (strpos($content, 'is_admin') !== false) { echo " ✅ User Model hat is_admin in fillable\n"; } else { echo " ❌ User Model hat is_admin nicht in fillable\n"; } } else { echo " ❌ User Model nicht gefunden\n"; } echo "\n✅ Admin-Funktionalität Test abgeschlossen!\n"; echo "🔗 Testen Sie jetzt: https://neonail.vogt.de.com/admin/users\n"; echo "📝 Versuchen Sie einen User zum Admin zu machen\n"; } catch (Exception $e) { echo "❌ Fehler: " . $e->getMessage() . "\n"; echo "📍 Datei: " . $e->getFile() . ":" . $e->getLine() . "\n"; } ?>