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