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

166 lines
5.5 KiB
PHP

<?php
// Fix: Admin-Routes korrigieren
echo "👑 Fix: Admin-Routes korrigieren\n";
echo "==============================\n\n";
// 1. Routes-Datei analysieren
echo "1. 📋 Routes-Datei analysieren:\n";
$routesPath = 'routes/web.php';
if (file_exists($routesPath)) {
$content = file_get_contents($routesPath);
// Zeige alle Admin-bezogenen Zeilen
$lines = explode("\n", $content);
$adminLines = [];
foreach ($lines as $lineNumber => $line) {
if (strpos($line, 'admin') !== false || strpos($line, 'Admin') !== false) {
$adminLines[] = ($lineNumber + 1) . ": " . trim($line);
}
}
echo " 📄 Admin-bezogene Zeilen in routes/web.php:\n";
foreach ($adminLines as $line) {
echo " $line\n";
}
} else {
echo " ❌ Routes-Datei nicht gefunden\n";
}
// 2. Route-Liste generieren
echo "\n2. 🛣️ Route-Liste generieren:\n";
try {
// Laravel Bootstrap
require_once 'vendor/autoload.php';
$app = require_once 'bootstrap/app.php';
$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();
// Route-Liste abrufen
$routes = \Illuminate\Support\Facades\Route::getRoutes();
$adminRoutes = [];
foreach ($routes as $route) {
$uri = $route->uri();
$methods = $route->methods();
$name = $route->getName();
if (strpos($uri, 'admin') !== false || strpos($name, 'admin') !== false) {
$adminRoutes[] = [
'uri' => $uri,
'methods' => $methods,
'name' => $name
];
}
}
if (empty($adminRoutes)) {
echo " ⚠️ Keine Admin-Routes gefunden\n";
} else {
echo " ✅ Admin-Routes gefunden:\n";
foreach ($adminRoutes as $route) {
$methods = implode('|', $route['methods']);
$name = $route['name'] ?: 'kein Name';
echo " $methods $uri ($name)\n";
}
}
} catch (Exception $e) {
echo " ❌ Fehler beim Abrufen der Routes: " . $e->getMessage() . "\n";
}
// 3. Admin-Routes manuell prüfen
echo "\n3. 🔍 Admin-Routes manuell prüfen:\n";
$routesPath = 'routes/web.php';
if (file_exists($routesPath)) {
$content = file_get_contents($routesPath);
// Suche nach spezifischen Admin-Route-Patterns
$adminPatterns = [
'admin/dashboard' => 'Dashboard Route',
'admin/users' => 'Users Index Route',
'admin/users/create' => 'Users Create Route',
'admin/users/{user}/edit' => 'Users Edit Route',
'admin/statistics' => 'Statistics Route',
'admin/users/{user}' => 'Users Show/Edit Route',
'nail-polishes' => 'Nail Polishes Route'
];
foreach ($adminPatterns as $pattern => $description) {
if (strpos($content, $pattern) !== false) {
echo " ✅ Pattern gefunden: $pattern ($description)\n";
} else {
echo " ❌ Pattern fehlt: $pattern ($description)\n";
}
}
// Prüfe Route-Gruppen
if (strpos($content, "Route::middleware(['admin'])->prefix('admin')") !== false) {
echo " ✅ Admin Route-Gruppe gefunden\n";
} else {
echo " ❌ Admin Route-Gruppe nicht gefunden\n";
}
} else {
echo " ❌ Routes-Datei nicht gefunden\n";
}
// 4. Cache leeren und Routes neu laden
echo "\n4. 🧹 Cache leeren und Routes neu laden...\n";
system('php artisan route:clear 2>/dev/null || echo " ⚠️ route: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"');
echo " ✅ Cache geleert\n";
// 5. Admin-User Status prüfen
echo "\n5. 👑 Admin-User Status prüfen:\n";
try {
// Alle User mit Admin-Rechten auflisten
$users = \App\Models\User::all();
foreach ($users as $user) {
$isAdmin = $user->isAdmin();
$isAdminColumn = $user->is_admin;
$email = $user->email;
if ($isAdmin || $isAdminColumn) {
echo " 📧 $email:\n";
echo " - is_admin Spalte: " . ($isAdminColumn ? 'Ja' : 'Nein') . "\n";
echo " - isAdmin() Methode: " . ($isAdmin ? 'Ja' : 'Nein') . "\n";
echo " - Admin-Status: " . ($isAdmin ? '✅ Admin' : '❌ Kein Admin') . "\n";
echo "\n";
}
}
} catch (Exception $e) {
echo " ❌ Fehler beim Prüfen der User: " . $e->getMessage() . "\n";
}
// 6. Test-URLs generieren
echo "\n6. 🔗 Test-URLs für Admin-Zugriffe:\n";
$baseUrl = 'https://neonail.vogt.de.com';
$adminUrls = [
'/admin/dashboard' => 'Admin Dashboard',
'/admin/users' => 'Admin Users',
'/admin/users/create' => 'Admin Create User',
'/admin/statistics' => 'Admin Statistics',
'/nail-polishes' => 'Nail Polishes Management'
];
foreach ($adminUrls as $url => $description) {
echo " 🔗 $baseUrl$url ($description)\n";
}
echo "\n✅ Admin-Routes Analyse abgeschlossen!\n";
echo "🔗 Testen Sie jetzt:\n";
echo "1. Melden Sie sich als Admin an (oliver@vogt.de.com)\n";
echo "2. Prüfen Sie ob Admin-Menü sichtbar ist\n";
echo "3. Klicken Sie auf 'Admin' → 'Benutzer'\n";
echo "4. Oder versuchen Sie direkt: $baseUrl/admin/users\n";
echo "5. Falls 403 Fehler: Prüfen Sie ob User wirklich Admin ist\n";
echo "\n📋 Falls Probleme bestehen:\n";
echo "- Prüfen Sie Browser-Entwicklertools (F12) für Fehler\n";
echo "- Schauen Sie in die Laravel-Logs: tail -f storage/logs/laravel.log\n";
echo "- Teilen Sie eventuelle Fehlermeldungen mit\n";
?>