bulk user handling basics
This commit is contained in:
parent
798a832341
commit
b831d9b66e
@ -1,6 +1,7 @@
|
|||||||
package fr.la_banquise.backend.rest;
|
package fr.la_banquise.backend.rest;
|
||||||
|
|
||||||
import fr.la_banquise.backend.rest.request.BulkUserRequest;
|
import fr.la_banquise.backend.rest.request.BulkUserDelRequest;
|
||||||
|
import fr.la_banquise.backend.rest.request.BulkUserPostRequest;
|
||||||
import fr.la_banquise.backend.rest.request.UserRequest;
|
import fr.la_banquise.backend.rest.request.UserRequest;
|
||||||
import fr.la_banquise.backend.rest.response.LoggedUserResponse;
|
import fr.la_banquise.backend.rest.response.LoggedUserResponse;
|
||||||
import fr.la_banquise.backend.services.UserService;
|
import fr.la_banquise.backend.services.UserService;
|
||||||
@ -60,16 +61,20 @@ public class UserEndpoints {
|
|||||||
@POST
|
@POST
|
||||||
@RolesAllowed("root") // TODO: respos JI doivent aussi pouvoir faire ca
|
@RolesAllowed("root") // TODO: respos JI doivent aussi pouvoir faire ca
|
||||||
@Path("/bulk")
|
@Path("/bulk")
|
||||||
public Response createUsersBulk(BulkUserRequest users) {
|
// INFO: if response is empty => required associated jiId was not found in
|
||||||
userService.createUsers(users);
|
// existing JIs
|
||||||
|
public Response createUsersBulk(BulkUserPostRequest users) {
|
||||||
|
userService.createUsers(
|
||||||
|
users); // TODO: adapter en fonction de la reponse
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@DELETE
|
@DELETE
|
||||||
@RolesAllowed("root")
|
@RolesAllowed("root")
|
||||||
@Path("/bulk")
|
@Path("/bulk")
|
||||||
public Response deleteUserBulk() {
|
public Response deleteUserBulk(BulkUserDelRequest users) {
|
||||||
userService.deleteUsers();
|
userService.deleteUsers(
|
||||||
|
users); // TODO: adapter en focntion de la reponse
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
package fr.la_banquise.backend.rest.request;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class BulkUserDelRequest {
|
||||||
|
public List<UserDelRequest> usernames;
|
||||||
|
}
|
@ -2,11 +2,7 @@ package fr.la_banquise.backend.rest.request;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
public class BulkUserPostRequest {
|
||||||
* UserRequest
|
|
||||||
*/
|
|
||||||
public class BulkUserRequest {
|
|
||||||
public List<UserRequest> users;
|
public List<UserRequest> users;
|
||||||
public String password;
|
public Long jiId;
|
||||||
public Long tpId;
|
|
||||||
}
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
package fr.la_banquise.backend.rest.request;
|
||||||
|
|
||||||
|
public class UserDelRequest {
|
||||||
|
public String name;
|
||||||
|
}
|
@ -1,14 +1,7 @@
|
|||||||
package fr.la_banquise.backend.rest.request;
|
package fr.la_banquise.backend.rest.request;
|
||||||
|
|
||||||
/**
|
|
||||||
* UserRequest
|
|
||||||
*/
|
|
||||||
public class UserRequest {
|
public class UserRequest {
|
||||||
public String name;
|
public String name;
|
||||||
public String email;
|
public String email;
|
||||||
public String password;
|
public String password;
|
||||||
public String instance_name;
|
|
||||||
public String instance_ssh;
|
|
||||||
public Long instance_port;
|
|
||||||
public String instance_pwd;
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
package fr.la_banquise.backend.rest.response;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||||
|
|
||||||
|
@RegisterForReflection
|
||||||
|
public class BulkUserDelResponse {
|
||||||
|
public List<String> success_names;
|
||||||
|
public List<String> failed_names;
|
||||||
|
public List<String> failed_reasons;
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package fr.la_banquise.backend.rest.response;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||||
|
|
||||||
|
@RegisterForReflection
|
||||||
|
public class BulkUserPostResponse {
|
||||||
|
public List<String> success_names;
|
||||||
|
public List<String> already_created;
|
||||||
|
}
|
@ -1,17 +1,20 @@
|
|||||||
package fr.la_banquise.backend.services;
|
package fr.la_banquise.backend.services;
|
||||||
|
|
||||||
import fr.la_banquise.backend.data.model.Instance;
|
|
||||||
import fr.la_banquise.backend.data.model.User;
|
import fr.la_banquise.backend.data.model.User;
|
||||||
|
import fr.la_banquise.backend.data.repository.JiRepository;
|
||||||
import fr.la_banquise.backend.data.repository.UserRepository;
|
import fr.la_banquise.backend.data.repository.UserRepository;
|
||||||
import fr.la_banquise.backend.rest.request.BulkUserRequest;
|
import fr.la_banquise.backend.rest.request.BulkUserDelRequest;
|
||||||
|
import fr.la_banquise.backend.rest.request.BulkUserPostRequest;
|
||||||
|
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.BulkUserPostResponse;
|
||||||
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.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.hibernate.annotations.TypeRegistration;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UserService
|
* UserService
|
||||||
@ -20,8 +23,8 @@ import org.hibernate.annotations.TypeRegistration;
|
|||||||
public class UserService {
|
public class UserService {
|
||||||
|
|
||||||
@Inject UserRepository userRepository;
|
@Inject UserRepository userRepository;
|
||||||
|
|
||||||
@Inject InstanceService instanceService;
|
@Inject InstanceService instanceService;
|
||||||
|
@Inject JiRepository jiRepository;
|
||||||
|
|
||||||
public List<User> getAllUsers() { return userRepository.listAll(); }
|
public List<User> getAllUsers() { return userRepository.listAll(); }
|
||||||
|
|
||||||
@ -54,24 +57,41 @@ public class UserService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*@Transactional
|
@Transactional
|
||||||
public void deleteJDMI() {
|
public BulkUserDelResponse deleteUsers(BulkUserDelRequest request) {
|
||||||
for (Instance instance : instanceService.getAllInstances()) {
|
BulkUserDelResponse response = new BulkUserDelResponse();
|
||||||
instanceService.deleteInstance(instance.id);
|
User userToDel;
|
||||||
userRepository.deleteById(instance.owner.id);
|
|
||||||
|
for (UserDelRequest requestName : request.usernames) {
|
||||||
|
try {
|
||||||
|
userToDel =
|
||||||
|
userRepository.find("name", requestName.name).firstResult();
|
||||||
|
userRepository.delete(userToDel);
|
||||||
|
response.success_names.add(requestName.name);
|
||||||
|
} catch (Exception e) {
|
||||||
|
response.failed_names.add(requestName.name);
|
||||||
|
response.failed_reasons.add(e.toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public List<User> createJdmiUser(BulkUserRequest usersRequest) {
|
public BulkUserPostResponse createUsers(BulkUserPostRequest usersRequest) {
|
||||||
List<User> users = new ArrayList<>();
|
BulkUserPostResponse response = new BulkUserPostResponse();
|
||||||
for (UserRequest user : usersRequest.users) {
|
|
||||||
User newUser = createUser(user);
|
if (jiRepository.findById(usersRequest.jiId) != null) {
|
||||||
users.add(newUser);
|
for (UserRequest user : usersRequest.users) {
|
||||||
instanceService.createInstance(
|
try {
|
||||||
user.instance_name, user.instance_ssh, user.instance_pwd,
|
createUser(user);
|
||||||
user.instance_port, user.name, usersRequest.tpId);
|
response.success_names.add(user.name);
|
||||||
|
} catch (Exception e) {
|
||||||
|
response.already_created.add(user.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return new ArrayList<User>();
|
|
||||||
}*/
|
return response;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user