diff --git a/Back-end/src/main/java/com/example/starter/AuthHandler.java b/Back-end/src/main/java/com/example/starter/AuthHandler.java
index cb0d0cd..e3a31c3 100644
--- a/Back-end/src/main/java/com/example/starter/AuthHandler.java
+++ b/Back-end/src/main/java/com/example/starter/AuthHandler.java
@@ -94,11 +94,11 @@ public class AuthHandler {
if (verification.verified) {
JsonObject claims = new JsonObject().put("sub", email);
- if(nbPointsUser<=30){
+ if(nbPointsUser<=60){
claims.put("role", "user");
- }else if(nbPointsUser<=60){
+ }else if(nbPointsUser<=100){
claims.put("role", "complexe");
- }else if(nbPointsUser>=100){
+ }else if(nbPointsUser>=200){
claims.put("role", "admin");
}
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..b669774 100644
--- a/Back-end/src/main/java/com/example/starter/MainVerticle.java
+++ b/Back-end/src/main/java/com/example/starter/MainVerticle.java
@@ -41,6 +41,9 @@ public class MainVerticle extends AbstractVerticle {
AuthHandler authHandler = new AuthHandler(databaseService, jwtAuth);
QueryUsers queryUsers = new QueryUsers(databaseService);
SetUser setUser = new SetUser(databaseService);
+ setObjects.setUserHandler(setUser);
+ queryObjects.setUserHandler(setUser);
+
// Déclaration des routes
router.get("/objets").handler(queryObjects::getObjects);
@@ -54,6 +57,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/QueryObjects.java b/Back-end/src/main/java/com/example/starter/QueryObjects.java
index 8d90bf0..029a497 100644
--- a/Back-end/src/main/java/com/example/starter/QueryObjects.java
+++ b/Back-end/src/main/java/com/example/starter/QueryObjects.java
@@ -10,14 +10,20 @@ import java.time.format.DateTimeFormatter;
import io.vertx.ext.web.RoutingContext;
-
public class QueryObjects {
- private DatabaseService databaseService;
- public QueryObjects(DatabaseService dtbS){
- this.databaseService = dtbS;
- }
+ private DatabaseService databaseService;
- public void getObjects(RoutingContext context) {
+ public QueryObjects(DatabaseService dtbS) {
+ this.databaseService = dtbS;
+ }
+
+ private SetUser setUser;
+
+ public void setUserHandler(SetUser setUser) {
+ this.setUser = setUser;
+ }
+
+ public void getObjects(RoutingContext context) {
databaseService.pool
.query("SELECT * FROM weather_objects;")
.execute()
@@ -36,6 +42,8 @@ public class QueryObjects {
public void getParticularObject(RoutingContext context) {
String id = context.request().getParam("id");
+ // Integer idUser = body.getInteger("idUser");
+ Integer idUser = 4;
if (id == null) {
context.response()
.setStatusCode(400)
@@ -58,6 +66,10 @@ public class QueryObjects {
.end(new JsonObject().put("error", "Objet non trouvé").encode());
return;
}
+ if (idUser != null) {
+ setUser.updateUserPoints(idUser, 1);
+ }
+ ;
context.response()
.putHeader("content-type", "application/json: charset=UTF-8")
.end(getInfosObjects(rows).encode());
@@ -77,9 +89,9 @@ public class QueryObjects {
.put("location", row.getString("location"))
.put("last_update", row.getLocalDateTime("last_update").format(formatter))
.put("status", row.getString("status"))
- .put("batterie",row.getInteger("batterie"))
- .put("type_batterie",row.getString("type_batterie"))
- .put("proprio",row.getString("proprio"));
+ .put("batterie", row.getInteger("batterie"))
+ .put("type_batterie", row.getString("type_batterie"))
+ .put("proprio", row.getString("proprio"));
objects.add(object);
}
return objects;
diff --git a/Back-end/src/main/java/com/example/starter/QueryUsers.java b/Back-end/src/main/java/com/example/starter/QueryUsers.java
index a3cca49..e065c02 100644
--- a/Back-end/src/main/java/com/example/starter/QueryUsers.java
+++ b/Back-end/src/main/java/com/example/starter/QueryUsers.java
@@ -33,11 +33,11 @@ public class QueryUsers {
.put("email", row.getString("email"))
.put("gender", row.getString("gender"))
.put("points",points);
- if(points<=30){
+ if(points<=60){
user.put("role", "user");
- }else if(points<=60){
+ }else if(points<=100){
user.put("role", "complexe");
- }else if(points>=100){
+ }else if(points>=200){
user.put("role", "admin");
}
users.add(user);
diff --git a/Back-end/src/main/java/com/example/starter/SetObjects.java b/Back-end/src/main/java/com/example/starter/SetObjects.java
index e3a6de6..a1bb0e6 100644
--- a/Back-end/src/main/java/com/example/starter/SetObjects.java
+++ b/Back-end/src/main/java/com/example/starter/SetObjects.java
@@ -6,11 +6,13 @@ import io.vertx.sqlclient.Tuple;
public class SetObjects {
private DatabaseService databaseService;
-
+ private SetUser setUser;
public SetObjects(DatabaseService ddbs) {
this.databaseService = ddbs;
}
-
+ public void setUserHandler(SetUser setUser){
+ this.setUser = setUser;
+ }
public void setInfoObjet(RoutingContext context) {
JsonObject body = context.body().asJsonObject();
if (body == null) {
@@ -20,6 +22,8 @@ public class SetObjects {
return;
}
Integer id = body.getInteger("id");
+ // Integer idUser = body.getInteger("idUser");
+ Integer idUser = 4;
String description = body.getString("description");
String type = body.getString("type");
String location = body.getString("location");
@@ -42,6 +46,9 @@ public class SetObjects {
.end(new JsonObject().put("error", "Objet non trouvé").encode());
return;
}
+ if(idUser!=null){
+ setUser.updateUserPoints(idUser,1);
+ };
context.response()
.putHeader("content-type", "application/json: charset=UTF-8")
.end(new JsonObject().put("success", "L'objet à bien été mis à jour").encode());
@@ -88,6 +95,8 @@ public class SetObjects {
.end(new JsonObject().put("error","Corps de la requête manquant").encode());
return;
}
+ // Integer idUser = body.getInteger("idUser");
+ Integer idUser = 4;
String name = body.getString("nom");
String description = body.getString("description");
String type = body.getString("type");
@@ -111,12 +120,14 @@ public class SetObjects {
.end(new JsonObject().put("error", "Objet non trouvé").encode());
return;
}
+ if(idUser!=null){
+ setUser.updateUserPoints(idUser,2);
+ };
context.response()
.putHeader("content-type","application/json: charset=UTF-8")
.end(new JsonObject().put("success", "L'objet à bien été ajouté").encode());
return;
});
-
}
}
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..6bcd9b2 100644
--- a/Back-end/src/main/java/com/example/starter/SetUser.java
+++ b/Back-end/src/main/java/com/example/starter/SetUser.java
@@ -10,7 +10,21 @@ public class SetUser {
public SetUser(DatabaseService ddbs) {
this.databaseService = ddbs;
}
-
+ public void updateUserPoints(Integer userId, Integer points) {
+ databaseService.pool
+ .preparedQuery("UPDATE users SET points=points+? WHERE id=?")
+ .execute(Tuple.of(points, userId))
+ .onFailure(e -> {
+ System.err.println("Erreur de mise à jour des points :" + e.getMessage());
+ })
+ .onSuccess(rows -> {
+ if (rows.rowCount() > 0) {
+ System.out.println("Points de l'utilisateur mis à jour avec succès");
+ } else {
+ System.out.println("Utilisateur non trouvé pour la mise à jour des points");
+ }
+ });
+ }
public void setUserPoints(RoutingContext context) {
JsonObject body = context.body().asJsonObject();
if (body == null) {
@@ -21,11 +35,10 @@ public class SetUser {
}
Integer id = body.getInteger("id");
Integer points = body.getInteger("points");
-
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 +54,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/Back-end/src/main/java/com/example/starter/SetWeatherData.java b/Back-end/src/main/java/com/example/starter/SetWeatherData.java
index 4c2fb56..d6ca45f 100644
--- a/Back-end/src/main/java/com/example/starter/SetWeatherData.java
+++ b/Back-end/src/main/java/com/example/starter/SetWeatherData.java
@@ -6,11 +6,15 @@ import io.vertx.sqlclient.Tuple;
public class SetWeatherData {
private DatabaseService databaseService;
+ private SetUser setUser;
+
public SetWeatherData(DatabaseService ddbs) {
this.databaseService = ddbs;
}
-
+ public void setUserHandler(SetUser setUser) {
+ this.setUser = setUser;
+ }
public void setRangeData(RoutingContext context) {
JsonObject body = context.body().asJsonObject();
if (body == null) {
@@ -37,7 +41,8 @@ public class SetWeatherData {
return;
}
String query = String.format("UPDATE range_data SET %s_min=?, %s_max=? WHERE station_id=?", type, type);
-
+ // Integer idUser = body.getInteger("idUser");
+ Integer idUser = 4;
databaseService.pool
.preparedQuery(
query)
@@ -55,6 +60,9 @@ public class SetWeatherData {
.end(new JsonObject().put("error", "Objet non trouvé").encode());
return;
}
+ if (idUser != null) {
+ setUser.updateUserPoints(idUser, 1);
+ }
context.response()
.putHeader("content-type", "application/json: charset=UTF-8")
.end(new JsonObject().put("success", "Les limites ont bien été mis à jour").encode());
diff --git a/Front-end/src/App.jsx b/Front-end/src/App.jsx
index 5b1d6c8..18df2c9 100644
--- a/Front-end/src/App.jsx
+++ b/Front-end/src/App.jsx
@@ -14,6 +14,7 @@ import Sidebar from "./pages/Admin/sidebar.jsx";
import User from "./pages/Admin/User.jsx";
import Dashboard from "./pages/Admin/Dashboard.jsx";
import AdminObjet from "./pages/Admin/AdminObjet.jsx";
+import ProtectedRoute from './ProtectedRoute.jsx'; // Correction de l'import
function App() {
return (
@@ -24,17 +25,17 @@ function App() {
Cet objet peut être inactif dû à son manque de données. Vous pouvez le - rendre inactif en appuyant ici. + rendre inactif en changeant son status.