127 lines
4.3 KiB
PHP
127 lines
4.3 KiB
PHP
<?php
|
||
// Test der Admin-Funktionalität
|
||
echo "👑 Test der Admin-Funktionalität\n";
|
||
echo "==============================\n\n";
|
||
|
||
try {
|
||
// Datenbankverbindung
|
||
$pdo = new PDO('sqlite:database.sqlite');
|
||
$pdo->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";
|
||
}
|
||
?>
|