make('Illuminate\Contracts\Console\Kernel')->bootstrap(); // Datenbankverbindung herstellen $users = \App\Models\User::all(); foreach ($users as $user) { $isAdmin = $user->isAdmin(); $isAdminColumn = $user->is_admin; $email = $user->email; echo " 📧 $email:\n"; echo " - is_admin Spalte: " . ($isAdminColumn ? 'Ja' : 'Nein') . "\n"; echo " - isAdmin() Methode: " . ($isAdmin ? 'Ja' : 'Nein') . "\n"; echo " - Admin-Email Check: " . (in_array($email, ['admin@neonail.com', 'neueradmin@neonail.com']) ? 'Ja' : 'Nein') . "\n"; echo "\n"; } } catch (Exception $e) { echo " ❌ Fehler beim Prüfen der User: " . $e->getMessage() . "\n"; } // 2. User Model prüfen echo "2. 📋 User Model prüfen:\n"; $userModelPath = 'app/Models/User.php'; if (file_exists($userModelPath)) { $content = file_get_contents($userModelPath); // Prüfe isAdmin Methode if (strpos($content, 'public function isAdmin()') !== false) { echo " ✅ isAdmin() Methode vorhanden\n"; } else { echo " ❌ isAdmin() Methode fehlt\n"; } // Prüfe is_admin in fillable if (strpos($content, "'is_admin'") !== false) { echo " ✅ is_admin in \$fillable vorhanden\n"; } else { echo " ❌ is_admin nicht in \$fillable\n"; } // Prüfe makeAdmin Methode if (strpos($content, 'public function makeAdmin()') !== false) { echo " ✅ makeAdmin() Methode vorhanden\n"; } else { echo " ❌ makeAdmin() Methode fehlt\n"; } } else { echo " ❌ User Model nicht gefunden\n"; } // 3. AdminMiddleware prüfen echo "3. 🛡️ AdminMiddleware prüfen:\n"; $middlewarePath = 'app/Http/Middleware/AdminMiddleware.php'; if (file_exists($middlewarePath)) { $content = file_get_contents($middlewarePath); if (strpos($content, 'auth()->user()->isAdmin()') !== false) { echo " ✅ AdminMiddleware verwendet isAdmin() Methode\n"; } else { echo " ❌ AdminMiddleware verwendet nicht isAdmin() Methode\n"; } } else { echo " ❌ AdminMiddleware nicht gefunden\n"; } // 4. Routes prüfen echo "4. 🛣️ Admin-Routes prüfen:\n"; $routesPath = 'routes/web.php'; if (file_exists($routesPath)) { $content = file_get_contents($routesPath); $adminRoutes = [ 'admin/users', 'admin/dashboard', 'nail-polishes' ]; foreach ($adminRoutes as $route) { if (strpos($content, $route) !== false) { echo " ✅ Route gefunden: $route\n"; } else { echo " ❌ Route fehlt: $route\n"; } } } else { echo " ❌ Routes-Datei nicht gefunden\n"; } // 5. Layout prüfen echo "5. 🎨 Layout prüfen:\n"; $layoutPath = 'resources/views/layouts/app.blade.php'; if (file_exists($layoutPath)) { $content = file_get_contents($layoutPath); if (strpos($content, 'auth()->user()->isAdmin()') !== false) { echo " ✅ Layout verwendet isAdmin() für Admin-Menü\n"; } else { echo " ❌ Layout verwendet nicht isAdmin() für Admin-Menü\n"; } } else { echo " ❌ Layout-Datei nicht gefunden\n"; } // 6. Cache leeren echo "6. 🧹 Cache leeren...\n"; system('php artisan cache:clear 2>/dev/null || echo " ⚠️ cache:clear übersprungen"'); system('php artisan config:clear 2>/dev/null || echo " ⚠️ config:clear übersprungen"'); system('php artisan view:clear 2>/dev/null || echo " ⚠️ view:clear übersprungen"'); system('php artisan route:clear 2>/dev/null || echo " ⚠️ route:clear übersprungen"'); echo " ✅ Cache geleert\n"; // 7. Test-Admin erstellen echo "7. 👑 Test-Admin erstellen...\n"; try { $testUser = \App\Models\User::where('email', 'testadmin@neonail.com')->first(); if (!$testUser) { $testUser = new \App\Models\User(); $testUser->name = 'Test Admin'; $testUser->email = 'testadmin@neonail.com'; $testUser->password = bcrypt('password123'); $testUser->is_admin = true; $testUser->save(); echo " ✅ Test-Admin erstellt: testadmin@neonail.com\n"; } else { $testUser->is_admin = true; $testUser->save(); echo " ✅ Test-Admin aktualisiert: testadmin@neonail.com\n"; } } catch (Exception $e) { echo " ❌ Fehler beim Erstellen des Test-Admins: " . $e->getMessage() . "\n"; } echo "\n✅ Admin-Ansicht Problem Analyse abgeschlossen!\n"; echo "🔗 Testen Sie jetzt:\n"; echo "1. Melden Sie sich als neuer Admin an\n"; echo "2. Prüfen Sie ob Admin-Menü sichtbar ist\n"; echo "3. Versuchen Sie auf /admin/users zuzugreifen\n"; echo "4. Falls Problem besteht, teilen Sie die Ausgabe mit\n"; ?>