prepare("UPDATE users SET is_active = 1 - is_active WHERE id = ?")->execute([$id]); } elseif ($action === 'toggle_family' && $id) { $meta_pdo->prepare("UPDATE families SET is_active = 1 - is_active WHERE id = ?")->execute([$id]); } elseif ($action === 'toggle_admin' && $id) { // Ne peut pas se retirer ses propres droits admin if ($id !== (int)$_SESSION['user']['id']) { $meta_pdo->prepare("UPDATE users SET is_admin = 1 - is_admin WHERE id = ?")->execute([$id]); } } elseif ($action === 'delete_user' && $id) { if ($id !== (int)$_SESSION['user']['id']) { $meta_pdo->prepare("DELETE FROM users WHERE id = ?")->execute([$id]); } } elseif ($action === 'regen_invite' && $id) { $new_code = bin2hex(random_bytes(8)); $meta_pdo->prepare("UPDATE families SET invite_code = ? WHERE id = ?")->execute([$new_code, $id]); } header('Location: /admin/'); exit; } // ─── Données ────────────────────────────────────────────────────────────────── $families = $meta_pdo->query(" SELECT f.*, COUNT(u.id) as member_count FROM families f LEFT JOIN users u ON u.family_id = f.id GROUP BY f.id ORDER BY f.id ")->fetchAll(); $users = $meta_pdo->query(" SELECT u.*, f.name as family_name FROM users u LEFT JOIN families f ON f.id = u.family_id ORDER BY u.id ")->fetchAll(); $pageTitle = "Admin — HouseHub"; $activePage = "admin"; require __DIR__ . '/../header.php'; ?>
Gestion des espaces familiaux et des utilisateurs
| # | Nom | DB | Code invitation | Membres | Statut | Actions |
|---|---|---|---|---|---|---|
| = $f['id'] ?> | = htmlspecialchars($f['name']) ?> | = $f['db_name'] ?> |
= $f['invite_code'] ?>
|
= $f['member_count'] ?> | = $f['is_active'] ? 'Actif' : 'Inactif' ?> |
| # | Utilisateur | Espace famille | Rôle | Statut | Créé le | Actions |
|---|---|---|---|---|---|---|
| = $u['id'] ?> | = htmlspecialchars($u['display_name']) ?> @= htmlspecialchars($u['username']) ?> (vous) | = $u['family_name'] ? htmlspecialchars($u['family_name']) : '—' ?> | Admin Membre | = $u['is_active'] ? 'Actif' : 'Inactif' ?> | = date('d/m/Y', strtotime($u['created_at'])) ?> |
—
|