diff --git a/src/main/java/com/covas/Resources/UsersRessources.java b/src/main/java/com/covas/Resources/UsersRessources.java index 71acd51..057ddb1 100644 --- a/src/main/java/com/covas/Resources/UsersRessources.java +++ b/src/main/java/com/covas/Resources/UsersRessources.java @@ -11,6 +11,7 @@ import javax.transaction.Transactional; import javax.ws.rs.core.SecurityContext; import javax.ws.rs.Consumes; import javax.ws.rs.CookieParam; +import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.PUT; import javax.ws.rs.Path; @@ -133,4 +134,50 @@ public class UsersRessources { } // Delete + @DELETE + @RolesAllowed("User") + @Transactional + public Response changeStatus(@Context SecurityContext ctx, @CookieParam("user") String userCookie){ + if(!ctx.getUserPrincipal().getName().equals(jwt.getName())){ + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); + } + UUID kid = UUID.fromString(jwt.getClaim(Claims.kid)); + UsersEntity user = UsersEntity.findById(kid); + if(!checkUserCookie(userCookie, user)){ + return Response.status(Response.Status.FORBIDDEN).build(); + } + + user.status = false; + user.persist(); + if(user.isPersistent()){ + return Response.ok().build(); + } + return Response.status(Response.Status.NOT_MODIFIED).build(); + } + + @DELETE + @Path("{id}") + @RolesAllowed("Admin") + @Transactional + public Response changeStatusSingleUser(@Context SecurityContext ctx, @CookieParam("user") String userCookie, @PathParam("id") String id){ + if(!ctx.getUserPrincipal().getName().equals(jwt.getName())){ + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); + } + UUID kid = UUID.fromString(jwt.getClaim(Claims.kid)); + UsersEntity user = UsersEntity.findById(kid); + if(!checkUserCookie(userCookie, user)){ + return Response.status(Response.Status.FORBIDDEN).build(); + } + + UsersEntity singleUser = UsersEntity.find("id", UUID.fromString(id)).firstResult(); + if(singleUser == null){ + return Response.status(Response.Status.NOT_FOUND).build(); + } + singleUser.status = false; + singleUser.persist(); + if(singleUser.isPersistent()){ + return Response.ok().build(); + } + return Response.status(Response.Status.NOT_MODIFIED).build(); + } }