diff --git a/Back-end/src/main/java/com/example/starter/MainVerticle.java b/Back-end/src/main/java/com/example/starter/MainVerticle.java
index 052e187..8492e6e 100644
--- a/Back-end/src/main/java/com/example/starter/MainVerticle.java
+++ b/Back-end/src/main/java/com/example/starter/MainVerticle.java
@@ -54,6 +54,8 @@ public class MainVerticle extends AbstractVerticle {
router.post("/deleteObject").handler(setObjects::deleteObject);
router.get("/users").handler(queryUsers::getUsers);
router.post("/setUserPoints").handler(setUser::setUserPoints);
+ router.post("/deleteUser").handler(setUser::deleteUser);
+
// Routes d'authentification
router.post("/signup").handler(authHandler::handleSignup);
router.post("/login").handler(authHandler::handleLogin);
diff --git a/Back-end/src/main/java/com/example/starter/SetUser.java b/Back-end/src/main/java/com/example/starter/SetUser.java
index 9d104fd..b2ade2a 100644
--- a/Back-end/src/main/java/com/example/starter/SetUser.java
+++ b/Back-end/src/main/java/com/example/starter/SetUser.java
@@ -25,7 +25,7 @@ public class SetUser {
databaseService.pool
.preparedQuery(
"UPDATE users SET points=? WHERE id=?")
- .execute(Tuple.of(points,id))
+ .execute(Tuple.of(points, id))
.onFailure(e -> {
System.err.println("Erreur de récupération de la BDD :" + e.getMessage());
context.response()
@@ -41,8 +41,41 @@ public class SetUser {
}
context.response()
.putHeader("content-type", "application/json: charset=UTF-8")
- .end(new JsonObject().put("success", "Les points de l'utilisateur ont bien été mis à jour").encode());
+ .end(new JsonObject().put("success", "Les points de l'utilisateur ont bien été mis à jour")
+ .encode());
return;
});
}
+ public void deleteUser(RoutingContext context){
+ JsonObject body = context.body().asJsonObject();
+ if(body== null){
+ context.response()
+ .setStatusCode(400)
+ .end(new JsonObject().put("error","Corps de la requête manquant").encode());
+ return;
+ }
+ Integer id = body.getInteger("id");
+ databaseService.pool
+ .preparedQuery("DELETE FROM users WHERE id=?")
+ .execute(Tuple.of(id))
+ .onFailure(e->{
+ System.err.println("Erreur de récupération de la BDD :"+e.getMessage());
+ context.response()
+ .setStatusCode(500)
+ .end(new JsonObject().put("error","Erreur de récupération de la BDD").encode());
+ })
+ .onSuccess(rows -> {
+ if(rows.rowCount()==0){
+ context.response()
+ .setStatusCode(404)
+ .end(new JsonObject().put("error", "Utilisateur non trouvé").encode());
+ return;
+ }
+ context.response()
+ .putHeader("content-type","application/json: charset=UTF-8")
+ .end(new JsonObject().put("success", "L'utilisateur à bien été supprimé").encode());
+ return;
+ });
+
+ }
}
diff --git a/Front-end/src/pages/Admin/Dashboard.jsx b/Front-end/src/pages/Admin/Dashboard.jsx
index 8056bc8..3e29bcf 100644
--- a/Front-end/src/pages/Admin/Dashboard.jsx
+++ b/Front-end/src/pages/Admin/Dashboard.jsx
@@ -1,51 +1,8 @@
-import React, { useState,useEffect } from "react";
+import React, { useState, useEffect } from "react";
import Sidebar from "./sidebar.jsx";
import { API_BASE_URL } from "../../config.js";
import axios from "axios";
-
-const dashboardStyles = {
- mainContent: {
- flexGrow: 1,
- padding: "20px",
- },
- summaryContainer: {
- display: "flex",
- gap: "20px",
- marginBottom: "20px",
- },
- summaryCard: {
- background: "#f4f4f4",
- padding: "20px",
- flex: 1,
- borderRadius: "5px",
- textAlign: "center",
- },
- table: {
- width: "100%",
- borderCollapse: "collapse",
- },
- tableHeader: {
- padding: "10px",
- border: "1px solid #ccc",
- backgroundColor: "#f4f4f4",
- },
- tableCell: {
- padding: "10px",
- border: "1px solid #ccc",
- textAlign: "left",
- },
- viewMoreButton: {
- marginTop: "10px",
- padding: "10px 15px",
- backgroundColor: "#007bff",
- color: "#fff",
- border: "none",
- borderRadius: "5px",
- cursor: "pointer",
- },
-};
-
function Dashboard() {
const [users, setUsers] = useState([]);
const [logs, setLogs] = useState([
@@ -62,64 +19,67 @@ function Dashboard() {
timestamp: new Date().toLocaleString(),
},
]);
+
useEffect(() => {
axios.get(`${API_BASE_URL}/users`).then((response) => {
setUsers(response.data);
});
}, []);
+
return (
-
+
-
- Dashboard
-
-
-
Total Users
-
{users.length}
+
+ Dashboard
+
+
+
+
Total Users
+
{users.length}
-
-
Dernier Log
+
+
Dernier Log
{logs.length > 0 ? (
-
- {logs[logs.length - 1].username} -{" "}
- {logs[logs.length - 1].action}
+
+ {logs[logs.length - 1].username} - {logs[logs.length - 1].action}
) : (
-
Aucun log
+
Aucun log
)}
- Aperçu des Utilisateurs
-
-
-
- | Username |
- Email |
- Niveau d'accès |
-
-
-
- {users.slice(0, 5).map((user) => (
-
- | {user.name} |
- {user.email} |
- {user.role} |
+ Aperçu des Utilisateurs
+
+
+
+
+ | Username |
+ Email |
+ Niveau d'accès |
- ))}
- {users.length === 0 && (
-
- |
- Aucun utilisateur disponible
- |
-
- )}
-
-
- {/* Bouton pour accéder à la page complète */}
+
+
+ {users.slice(0, 5).map((user) => (
+
+ | {user.name} |
+ {user.email} |
+ {user.role} |
+
+ ))}
+ {users.length === 0 && (
+
+ |
+ Aucun utilisateur disponible
+ |
+
+ )}
+
+
+