add function delete

This commit is contained in:
Valentin CZERYBA 2022-05-16 23:19:27 +02:00
parent 8e22daaff4
commit c461bae0d0

View File

@ -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();
}
}