put http 75% wip

This commit is contained in:
Valentin CZERYBA 2022-05-15 19:41:28 +02:00
parent dc355a7a29
commit d9cfa03756

View File

@ -1,12 +1,15 @@
package com.covas.Resources; package com.covas.Resources;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.UUID; import java.util.UUID;
import javax.annotation.security.RolesAllowed; import javax.annotation.security.RolesAllowed;
import javax.inject.Inject; import javax.inject.Inject;
import javax.transaction.Transactional; import javax.transaction.Transactional;
import javax.ws.rs.core.SecurityContext; import javax.ws.rs.core.SecurityContext;
import javax.ws.rs.Consumes;
import javax.ws.rs.CookieParam; import javax.ws.rs.CookieParam;
import javax.ws.rs.GET; import javax.ws.rs.GET;
import javax.ws.rs.PUT; import javax.ws.rs.PUT;
@ -17,6 +20,7 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import com.covas.Classes.Hash;
import com.covas.Entity.UsersEntity; import com.covas.Entity.UsersEntity;
import com.covas.Json.UserSingle; import com.covas.Json.UserSingle;
@ -92,9 +96,38 @@ public class UsersRessources {
@PUT @PUT
@RolesAllowed("Admin") @RolesAllowed("Admin")
@Consumes(MediaType.APPLICATION_JSON)
@Transactional @Transactional
public Response createUser(@Context SecurityContext ctx, @CookieParam("user") String userCookie){ public Response createUser(@Context SecurityContext ctx, @CookieParam("user") String userCookie, UsersEntity users){
return Response.status(Response.Status.CREATED).build(); 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 usersOrig = UsersEntity.findByPseudo(users.pseudo);
if(usersOrig != null){
return Response.status(Response.Status.CONFLICT).build();
}
UsersEntity usersNew = new UsersEntity();
usersNew.id = UUID.randomUUID();
usersNew.name = users.name;
usersNew.pseudo = users.pseudo;
usersNew.firstName = users.firstName;
usersNew.birth = LocalDate.of(users.birth.getYear(), users.birth.getMonth(), users.birth.getDayOfMonth());
usersNew.created_at = LocalDateTime.now();
usersNew.updated_at = LocalDateTime.now();
usersNew.password = Hash.encryptSHA512(Base64.toBase64String(users.password.getBytes(StandardCharsets.UTF_8)));
usersNew.roles = users.roles;
usersNew.status = false;
usersNew.persist();
if(usersNew.isPersistent()){
return Response.status(Response.Status.CREATED).build();
}
return Response.status(Response.Status.NO_CONTENT).build();
} }