97 lines
3.7 KiB
PHP
97 lines
3.7 KiB
PHP
<?php
|
|
session_start();
|
|
require_once 'include/session_check.php';
|
|
if ($_SESSION['role'] !== 'Admin') {
|
|
header("Location: dashboard.php");
|
|
exit();
|
|
}
|
|
|
|
$usersFile = 'users.json';
|
|
$users = file_exists($usersFile) ? json_decode(file_get_contents($usersFile), true) : [];
|
|
$message = '';
|
|
$success = '';
|
|
|
|
// Supprimer un utilisateur
|
|
if (isset($_GET['supprimer'])) {
|
|
$cible = $_GET['supprimer'];
|
|
if ($cible === $_SESSION['user']) {
|
|
$message = "Vous ne pouvez pas supprimer votre propre compte.";
|
|
} elseif (isset($users[$cible])) {
|
|
unset($users[$cible]);
|
|
file_put_contents($usersFile, json_encode($users, JSON_PRETTY_PRINT));
|
|
$success = "Utilisateur '$cible' supprimé avec succès.";
|
|
}
|
|
}
|
|
|
|
// Changer le rôle
|
|
if (isset($_GET['role'])) {
|
|
$cible = $_GET['role'];
|
|
if ($cible === $_SESSION['user']) {
|
|
$message = "Vous ne pouvez pas changer votre propre rôle.";
|
|
} elseif (isset($users[$cible])) {
|
|
$users[$cible]['role'] = ($users[$cible]['role'] === 'Admin') ? 'User' : 'Admin';
|
|
file_put_contents($usersFile, json_encode($users, JSON_PRETTY_PRINT));
|
|
$success = "Rôle de '$cible' modifié avec succès.";
|
|
// Recharger
|
|
$users = json_decode(file_get_contents($usersFile), true);
|
|
}
|
|
}
|
|
|
|
include 'include/header.php';
|
|
?>
|
|
|
|
<main>
|
|
<div class="logs-container">
|
|
<h2>👥 Gestion des utilisateurs</h2>
|
|
|
|
<?php if ($message): ?>
|
|
<p class="form-error" style="margin-top: 10px;"><?php echo htmlspecialchars($message); ?></p>
|
|
<?php endif; ?>
|
|
<?php if ($success): ?>
|
|
<p class="form-success" style="margin-top: 10px;"><?php echo htmlspecialchars($success); ?></p>
|
|
<?php endif; ?>
|
|
|
|
<table class="admin-table">
|
|
<thead>
|
|
<tr>
|
|
<th>Nom d'utilisateur</th>
|
|
<th>Rôle</th>
|
|
<th>Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php foreach ($users as $username => $data): ?>
|
|
<tr>
|
|
<td><?php echo htmlspecialchars($username); ?>
|
|
<?php if ($username === $_SESSION['user']): ?>
|
|
<span style="color: #3bc4e8; font-size: 0.8em;">(vous)</span>
|
|
<?php endif; ?>
|
|
</td>
|
|
<td>
|
|
<span style="color: <?php echo $data['role'] === 'Admin' ? '#3bc4e8' : '#aaa'; ?>">
|
|
<?php echo htmlspecialchars($data['role']); ?>
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<?php if ($username !== $_SESSION['user']): ?>
|
|
<a href="admin_users.php?role=<?php echo urlencode($username); ?>"
|
|
class="btn-action btn-warning">
|
|
<?php echo $data['role'] === 'Admin' ? '⬇️ Rétrograder' : '⬆️ Promouvoir'; ?>
|
|
</a>
|
|
<a href="admin_users.php?supprimer=<?php echo urlencode($username); ?>"
|
|
class="btn-action btn-danger"
|
|
onclick="return confirm('Supprimer <?php echo htmlspecialchars($username); ?> ?')">
|
|
🗑️ Supprimer
|
|
</a>
|
|
<?php else: ?>
|
|
<span style="color: #666; font-size: 0.85em;">— compte actuel —</span>
|
|
<?php endif; ?>
|
|
</td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</main>
|
|
|
|
<?php include 'include/footer.php'; ?>
|