neonail-database/fix-admin-view.php
2025-08-10 18:09:07 +02:00

159 lines
5.1 KiB
PHP

<?php
// Fix: Admin-Ansicht Problem
echo "👑 Fix: Admin-Ansicht Problem\n";
echo "============================\n\n";
// 1. Aktuelle User mit Admin-Rechten prüfen
echo "1. 🔍 Aktuelle Admin-User prüfen:\n";
try {
require_once 'vendor/autoload.php';
// Laravel Bootstrap
$app = require_once 'bootstrap/app.php';
$app->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";
?>