Script erstellt
This commit is contained in:
120
fix-admin-role-database.php
Normal file
120
fix-admin-role-database.php
Normal file
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
// Fix: Admin-Rolle zur Datenbank hinzufügen
|
||||
// Führen Sie dies aus, um die is_admin Spalte zu erstellen
|
||||
|
||||
echo "🔧 Fix: Admin-Rolle zur Datenbank hinzufügen\n";
|
||||
echo "==========================================\n\n";
|
||||
|
||||
try {
|
||||
// Datenbankverbindung
|
||||
$pdo = new PDO('sqlite:database.sqlite');
|
||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
echo "1. 🔍 Prüfe users-Tabelle...\n";
|
||||
|
||||
// Prüfe ob is_admin Spalte existiert
|
||||
$stmt = $pdo->query("PRAGMA table_info(users)");
|
||||
$columns = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$hasAdminColumn = false;
|
||||
|
||||
echo " 📋 Aktuelle Spalten in users-Tabelle:\n";
|
||||
foreach ($columns as $column) {
|
||||
echo " - {$column['name']} ({$column['type']})\n";
|
||||
if ($column['name'] === 'is_admin') {
|
||||
$hasAdminColumn = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$hasAdminColumn) {
|
||||
echo "\n2. ➕ Füge is_admin Spalte hinzu...\n";
|
||||
|
||||
// Füge is_admin Spalte hinzu
|
||||
$pdo->exec("ALTER TABLE users ADD COLUMN is_admin BOOLEAN DEFAULT 0");
|
||||
echo " ✅ is_admin Spalte hinzugefügt\n";
|
||||
|
||||
// Prüfe nochmal
|
||||
$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 erfolgreich erstellt\n";
|
||||
} else {
|
||||
echo " ❌ is_admin Spalte konnte nicht erstellt werden\n";
|
||||
exit;
|
||||
}
|
||||
} else {
|
||||
echo "\n2. ℹ️ is_admin Spalte existiert bereits\n";
|
||||
}
|
||||
|
||||
echo "\n3. 👑 Markiere bestehende Admin-User...\n";
|
||||
|
||||
// Markiere bestehende Admin-User
|
||||
$stmt = $pdo->prepare("UPDATE users SET is_admin = 1 WHERE email IN (?, ?)");
|
||||
$stmt->execute(['admin@neonail.com', 'neueradmin@neonail.com']);
|
||||
$affectedRows = $stmt->rowCount();
|
||||
echo " ✅ $affectedRows Admin-User aktualisiert\n";
|
||||
|
||||
echo "\n4. 📋 Zeige alle User mit Admin-Status...\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);
|
||||
|
||||
foreach ($users as $user) {
|
||||
$adminStatus = $user['is_admin'] ? '👑 Admin' : '👤 User';
|
||||
echo " - {$user['name']} ({$user['email']}) - {$adminStatus}\n";
|
||||
}
|
||||
|
||||
echo "\n5. 🧪 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-Rolle erfolgreich zur Datenbank hinzugefügt!\n";
|
||||
echo "🔗 Testen Sie jetzt: https://neonail.vogt.de.com/admin/users\n";
|
||||
echo "📝 Sie können jetzt User zum Admin machen!\n";
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo "❌ Fehler: " . $e->getMessage() . "\n";
|
||||
echo "📍 Datei: " . $e->getFile() . ":" . $e->getLine() . "\n";
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user