put http 75% wip
This commit is contained in:
parent
dc355a7a29
commit
d9cfa03756
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user