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

91 lines
3.0 KiB
PHP
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// Test der Admin-Checkbox Funktionalität
// Führen Sie dies aus, um zu prüfen, ob die Checkbox korrekt funktioniert
try {
// Datenbankverbindung
$pdo = new PDO('sqlite:database.sqlite');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "🧪 Test der Admin-Checkbox Funktionalität\n";
echo "========================================\n\n";
// 1. Prüfe is_admin Spalte
$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;
break;
}
}
if ($hasAdminColumn) {
echo "✅ is_admin Spalte existiert\n";
} else {
echo "❌ is_admin Spalte fehlt - führen Sie fix-admin-role.php aus\n";
exit;
}
// 2. Zeige alle User mit Admin-Status
echo "\n📋 User mit Admin-Status:\n";
$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';
$checkboxState = $user['is_admin'] ? '☑️ Aktiviert' : '☐ Deaktiviert';
echo "- {$user['name']} ({$user['email']}) - {$adminStatus} - {$checkboxState}\n";
}
}
// 3. Test: Mache einen User zum Admin
echo "\n🧪 Test: Mache einen User zum Admin...\n";
// Finde einen User, der noch kein Admin ist
$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 mit User: {$testUser['name']} ({$testUser['email']})\n";
// Mache User zum Admin
$stmt = $pdo->prepare("UPDATE users SET is_admin = 1 WHERE id = ?");
$stmt->execute([$testUser['id']]);
echo "✅ User zum Admin gemacht\n";
// 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-Status korrekt gesetzt\n";
} else {
echo "❌ Admin-Status nicht korrekt gesetzt\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 "\n✅ Admin-Checkbox Test erfolgreich!\n";
echo "🔗 Testen Sie jetzt: https://neonail.vogt.de.com/admin/users\n";
} catch (Exception $e) {
echo "❌ Fehler: " . $e->getMessage() . "\n";
}
?>