import React, { useState } from "react";
import Sidebar from "./sidebar.jsx";
const styles = {
mainContent: {
flexGrow: 1,
padding: "20px",
},
header: {
marginBottom: "20px",
},
userManagement: {
marginTop: "20px",
},
userForm: {
display: "grid",
gridTemplateColumns: "1fr 1fr auto",
gap: "10px",
marginBottom: "20px",
},
input: {
padding: "10px",
border: "1px solid #ccc",
borderRadius: "5px",
},
button: {
padding: "10px",
backgroundColor: "#28a745",
color: "white",
border: "none",
borderRadius: "5px",
cursor: "pointer",
},
userTable: {
width: "100%",
borderCollapse: "collapse",
},
thTd: {
padding: "10px",
border: "1px solid #ccc",
textAlign: "left",
},
th: {
backgroundColor: "#f4f4f4",
},
};
function User() {
// États pour la gestion des utilisateurs, des logs, des champs du formulaire et des ajustements de points
const [users, setUsers] = useState([]);
const [logs, setLogs] = useState([]);
const [username, setUsername] = useState("");
const [email, setEmail] = useState("");
const [pointsInput, setPointsInput] = useState({});
// Ajout d'un utilisateur
const handleAddUser = (e) => {
e.preventDefault();
const newUser = {
id: Date.now(),
username,
email,
accessLevel: "User", // Niveau d'accès par défaut
points: 0,
};
setUsers([...users, newUser]);
logAction(username, "User added");
setUsername("");
setEmail("");
};
// Suppression d'un utilisateur (fonction présente dans script.js)
const handleDeleteUser = (userId) => {
const user = users.find((u) => u.id === userId);
if (user) {
logAction(user.username, "User deleted");
}
setUsers(users.filter((u) => u.id !== userId));
};
// Changement du niveau d'accès via le menu déroulant (fonction issue de script.js)
const handleChangeAccessLevel = (userId, newLevel) => {
setUsers(
users.map((user) => {
if (user.id === userId) {
const oldLevel = user.accessLevel;
user.accessLevel = newLevel;
logAction(
user.username,
`Access level changed from ${oldLevel} to ${newLevel}`
);
}
return user;
})
);
};
// Ajustement des points d'un utilisateur (fonction issue de script.js)
const handleAdjustPoints = (userId) => {
const pointsToAdd = parseInt(pointsInput[userId]) || 0;
setUsers(
users.map((user) => {
if (user.id === userId) {
user.points += pointsToAdd;
logAction(user.username, `Points adjusted by ${pointsToAdd}`);
}
return user;
})
);
// Réinitialiser la valeur de l'input pour cet utilisateur
setPointsInput({ ...pointsInput, [userId]: "" });
};
// Fonction de journalisation des actions (définie dans script.js)
const logAction = (username, action) => {
const timestamp = new Date().toLocaleString();
setLogs([...logs, { id: Date.now(), username, action, timestamp }]);
};
return (
User Management
Manage users from this panel.
{/* Formulaire d'ajout d'utilisateur */}
{/* Tableau des utilisateurs */}
{/* Tableau des logs */}
Login History and Action Logs
| Username |
Action |
Timestamp |
{logs.map((log) => (
| {log.username} |
{log.action} |
{log.timestamp} |
))}
);
}
export default User;