dodo
This commit is contained in:
parent
821b7554b2
commit
8f8fc804f8
@ -7,6 +7,7 @@ import io.quarkus.security.jpa.UserDefinition;
|
|||||||
import io.quarkus.security.jpa.Username;
|
import io.quarkus.security.jpa.Username;
|
||||||
import jakarta.persistence.CascadeType;
|
import jakarta.persistence.CascadeType;
|
||||||
import jakarta.persistence.CollectionTable;
|
import jakarta.persistence.CollectionTable;
|
||||||
|
import jakarta.persistence.Column;
|
||||||
import jakarta.persistence.ElementCollection;
|
import jakarta.persistence.ElementCollection;
|
||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.EnumType;
|
import jakarta.persistence.EnumType;
|
||||||
@ -46,7 +47,7 @@ public class User {
|
|||||||
@SequenceGenerator(name = "UserSeq", sequenceName = "user_id_seq",
|
@SequenceGenerator(name = "UserSeq", sequenceName = "user_id_seq",
|
||||||
allocationSize = 1, initialValue = 1)
|
allocationSize = 1, initialValue = 1)
|
||||||
public Long id;
|
public Long id;
|
||||||
@Username public String name;
|
@Column(unique = true, nullable = false) @Username public String name;
|
||||||
@Password public String password;
|
@Password public String password;
|
||||||
|
|
||||||
@Enumerated(EnumType.STRING)
|
@Enumerated(EnumType.STRING)
|
||||||
|
|||||||
@ -79,7 +79,7 @@ public class UserEndpoints {
|
|||||||
@RolesAllowed("ROOT")
|
@RolesAllowed("ROOT")
|
||||||
@Path("{id}/roles")
|
@Path("{id}/roles")
|
||||||
public Response removeRole(@PathParam("id") Long userId,
|
public Response removeRole(@PathParam("id") Long userId,
|
||||||
@QueryParam("role") String role) {
|
@QueryParam("role") String role) {
|
||||||
try {
|
try {
|
||||||
userService.removeRole(role, userId);
|
userService.removeRole(role, userId);
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
@ -90,11 +90,10 @@ public class UserEndpoints {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@RolesAllowed("ROOT")
|
@RolesAllowed("ROOT")
|
||||||
public Response createUser(UserRequest user) {
|
public Response createUser(UserRequest user) {
|
||||||
return Response.ok(userService.createUser(user)).build();
|
return Response.ok(userService.createUserRandom(user)).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@DELETE
|
@DELETE
|
||||||
|
|||||||
@ -46,11 +46,12 @@ public class UsersEndpoints {
|
|||||||
@RolesAllowed("ROOT") // TODO: respos JI doivent aussi pouvoir faire ca
|
@RolesAllowed("ROOT") // TODO: respos JI doivent aussi pouvoir faire ca
|
||||||
// INFO: if response is empty => required associated jiId was not found in
|
// INFO: if response is empty => required associated jiId was not found in
|
||||||
// existing JIs
|
// existing JIs
|
||||||
public Response createUsersBulk(BulkUserPostRequest users) {
|
public Response createUsersBulk(BulkUserPostRequest request) {
|
||||||
BulkUserPostResponse response = userService.createUsers(
|
BulkUserPostResponse response = userService.createUsers(request);
|
||||||
users);
|
if (response.successNames.size() == request.users.size())
|
||||||
if (response.successNames.size() == users.users.size())
|
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
|
if (response.successNames.size() == 0)
|
||||||
|
return Response.status(500).build();
|
||||||
return Response.status(202)
|
return Response.status(202)
|
||||||
.entity(Map.of("These users were already created : ",
|
.entity(Map.of("These users were already created : ",
|
||||||
response.alreadyCreated))
|
response.alreadyCreated))
|
||||||
|
|||||||
@ -3,5 +3,4 @@ package fr.la_banquise.backend.rest.request;
|
|||||||
public class UserRequest {
|
public class UserRequest {
|
||||||
public String name;
|
public String name;
|
||||||
public String email;
|
public String email;
|
||||||
public String password;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,15 @@
|
|||||||
|
package fr.la_banquise.backend.rest.response;
|
||||||
|
|
||||||
|
import fr.la_banquise.backend.data.model.User;
|
||||||
|
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||||
|
|
||||||
|
@RegisterForReflection
|
||||||
|
public class UserPostResponse {
|
||||||
|
public User user;
|
||||||
|
public String passwd;
|
||||||
|
|
||||||
|
public UserPostResponse(User user, String passwd) {
|
||||||
|
this.user = user;
|
||||||
|
this.passwd = passwd;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -10,11 +10,13 @@ import fr.la_banquise.backend.rest.request.UserDelRequest;
|
|||||||
import fr.la_banquise.backend.rest.request.UserRequest;
|
import fr.la_banquise.backend.rest.request.UserRequest;
|
||||||
import fr.la_banquise.backend.rest.response.BulkUserDelResponse;
|
import fr.la_banquise.backend.rest.response.BulkUserDelResponse;
|
||||||
import fr.la_banquise.backend.rest.response.BulkUserPostResponse;
|
import fr.la_banquise.backend.rest.response.BulkUserPostResponse;
|
||||||
|
import fr.la_banquise.backend.rest.response.UserPostResponse;
|
||||||
import io.quarkus.elytron.security.common.BcryptUtil;
|
import io.quarkus.elytron.security.common.BcryptUtil;
|
||||||
import jakarta.enterprise.context.ApplicationScoped;
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import jakarta.transaction.Transactional;
|
import jakarta.transaction.Transactional;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UserService
|
* UserService
|
||||||
@ -32,12 +34,23 @@ public class UserService {
|
|||||||
public User getUser(String name) { return userRepository.findByName(name); }
|
public User getUser(String name) { return userRepository.findByName(name); }
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public User createUser(UserRequest request) {
|
public UserPostResponse createUser(UserRequest request, String code) {
|
||||||
User user =
|
User user = new User(request.name,
|
||||||
new User(request.name, BcryptUtil.bcryptHash(request.password),
|
BcryptUtil.bcryptHash(request.name.concat(code)),
|
||||||
RolesAsso.NONE);
|
RolesAsso.NONE);
|
||||||
userRepository.persist(user);
|
userRepository.persist(user);
|
||||||
return user;
|
String passwd = request.name.concat(code);
|
||||||
|
UserPostResponse retour = new UserPostResponse(user, passwd);
|
||||||
|
return retour;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public UserPostResponse createUserRandom(UserRequest request) {
|
||||||
|
|
||||||
|
Random rand = new Random();
|
||||||
|
int random = rand.nextInt(8999) + 1000;
|
||||||
|
|
||||||
|
return createUser(request, String.valueOf(random));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
@ -85,7 +98,9 @@ public class UserService {
|
|||||||
if (jiRepository.findById(usersRequest.jiId) != null) {
|
if (jiRepository.findById(usersRequest.jiId) != null) {
|
||||||
for (UserRequest user : usersRequest.users) {
|
for (UserRequest user : usersRequest.users) {
|
||||||
try {
|
try {
|
||||||
createUser(user);
|
Random rand = new Random();
|
||||||
|
int random = rand.nextInt(8999) + 1000;
|
||||||
|
createUser(user, String.valueOf(random));
|
||||||
response.successNames.add(user.name);
|
response.successNames.add(user.name);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
response.alreadyCreated.add(user.name);
|
response.alreadyCreated.add(user.name);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user