prepare("SELECT role FROM users WHERE id = ?"); $user_stmt->execute([$user_id]); $current_user = $user_stmt->fetch(); if (!$current_user || $current_user['role'] !== 'admin') { die("Accès refusé. Cette console est réservée aux Administrateurs."); } $tab = isset($_GET['tab']) ? $_GET['tab'] : 'users'; // --- HANDLERS --- // Handle User Role Update if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'update_user_role') { $target_user_id = (int)$_POST['target_user_id']; $new_role = $_POST['new_role']; if (in_array($new_role, ['user', 'gm', 'admin'])) { $stmt = $db->prepare("UPDATE users SET role = ? WHERE id = ?"); $stmt->execute([$new_role, $target_user_id]); } header("Location: admin.php?tab=users&success=1"); exit; } // Handle Celestial Object Type CRUD if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'upsert_object_type') { $id = (int)$_POST['id']; $name = $_POST['name']; $slug = $_POST['slug']; $icon = $_POST['icon']; $description = $_POST['description']; if ($id > 0) { $stmt = $db->prepare("UPDATE celestial_object_types SET name = ?, slug = ?, icon = ?, description = ? WHERE id = ?"); $stmt->execute([$name, $slug, $icon, $description, $id]); } else { $stmt = $db->prepare("INSERT INTO celestial_object_types (name, slug, icon, description) VALUES (?, ?, ?, ?)"); $stmt->execute([$name, $slug, $icon, $description]); } header("Location: admin.php?tab=objects&success=1"); exit; } if (isset($_GET['delete_object'])) { $id = (int)$_GET['delete_object']; $db->prepare("DELETE FROM celestial_object_types WHERE id = ?")->execute([$id]); header("Location: admin.php?tab=objects&success=1"); exit; } // Handle Status CRUD if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'upsert_status') { $id = (int)$_POST['id']; $name = $_POST['name']; $slug = $_POST['slug']; $color = $_POST['color']; $description = $_POST['description']; if ($id > 0) { $stmt = $db->prepare("UPDATE celestial_object_statuses SET name = ?, slug = ?, color = ?, description = ? WHERE id = ?"); $stmt->execute([$name, $slug, $color, $description, $id]); } else { $stmt = $db->prepare("INSERT INTO celestial_object_statuses (name, slug, color, description) VALUES (?, ?, ?, ?)"); $stmt->execute([$name, $slug, $color, $description]); } header("Location: admin.php?tab=statuses&success=1"); exit; } if (isset($_GET['delete_status'])) { $id = (int)$_GET['delete_status']; $db->prepare("DELETE FROM celestial_object_statuses WHERE id = ?")->execute([$id]); header("Location: admin.php?tab=statuses&success=1"); exit; } // Handle Settlement Type CRUD if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'upsert_settlement') { $id = (int)$_POST['id']; $name = $_POST['name']; $slug = $_POST['slug']; $description = $_POST['description']; if ($id > 0) { $stmt = $db->prepare("UPDATE settlement_types SET name = ?, slug = ?, description = ? WHERE id = ?"); $stmt->execute([$name, $slug, $description, $id]); } else { $stmt = $db->prepare("INSERT INTO settlement_types (name, slug, description) VALUES (?, ?, ?)"); $stmt->execute([$name, $slug, $description]); } header("Location: admin.php?tab=settlements&success=1"); exit; } if (isset($_GET['delete_settlement'])) { $id = (int)$_GET['delete_settlement']; $db->prepare("DELETE FROM settlement_types WHERE id = ?")->execute([$id]); header("Location: admin.php?tab=settlements&success=1"); exit; } // --- DATA FETCHING --- $users_list = []; $objects_list = []; $statuses_list = []; $settlements_list = []; if ($tab === 'users') { $users_list = $db->query("SELECT id, username, email, role FROM users ORDER BY username ASC")->fetchAll(); } elseif ($tab === 'objects') { $objects_list = $db->query("SELECT * FROM celestial_object_types ORDER BY name ASC")->fetchAll(); } elseif ($tab === 'statuses') { $statuses_list = $db->query("SELECT * FROM celestial_object_statuses ORDER BY name ASC")->fetchAll(); } elseif ($tab === 'settlements') { $settlements_list = $db->query("SELECT * FROM settlement_types ORDER BY name ASC")->fetchAll(); } ?> Console Admin - Nexus

CONSOLE ADMIN

Opération effectuée avec succès.
Utilisateurs Objets Célestes Statuts / États Villes / Avant-postes

Gestion des Rôles

UtilisateurEmailRôle ActuelNouveau Rôle

Objets Célestes

Ajouter / Modifier un Objet

IcôneNomSlugActions
Suppr

Statuts / États

Ajouter / Modifier un Statut

CouleurNomSlugActions
Suppr

Villes / Avant-postes

Ajouter / Modifier un Type d'Établissement

NomSlugDescriptionActions
Suppr