feat: perms
This commit is contained in:
parent
9a301adae2
commit
5e0e02cc6e
@ -1,6 +1,7 @@
|
||||
package fr.la_banquise.backend.rest;
|
||||
|
||||
import fr.la_banquise.backend.services.TpService;
|
||||
import io.quarkus.security.identity.SecurityIdentity;
|
||||
import fr.la_banquise.backend.rest.request.TpRequest;
|
||||
import jakarta.annotation.security.RolesAllowed;
|
||||
import jakarta.inject.Inject;
|
||||
@ -17,13 +18,16 @@ import jakarta.ws.rs.core.Response;
|
||||
* TpEndpoints
|
||||
*/
|
||||
@Path("/api/tps")
|
||||
@RolesAllowed("pingouin")
|
||||
public class TpEndpoints {
|
||||
|
||||
@Inject
|
||||
SecurityIdentity identity;
|
||||
|
||||
@Inject
|
||||
TpService tpService;
|
||||
|
||||
@GET
|
||||
@RolesAllowed("pingouin")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public Response getAllTps() {
|
||||
return Response.ok(tpService.getAllTps()).build();
|
||||
@ -33,12 +37,13 @@ public class TpEndpoints {
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Path("{id}")
|
||||
public Response getTp(@PathParam("id") Long id) {
|
||||
return Response.ok(tpService.getTp(id)).build();
|
||||
return Response.ok(tpService.getTp(id, identity.getPrincipal().getName())).build();
|
||||
}
|
||||
|
||||
@POST
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@RolesAllowed("root")
|
||||
public Response createTp(TpRequest tp) {
|
||||
System.out.println(tp.date);
|
||||
return Response.ok(tpService.createTp(tp)).build();
|
||||
|
@ -3,6 +3,7 @@ package fr.la_banquise.backend.rest;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import fr.la_banquise.backend.rest.request.BulkUserRequest;
|
||||
import fr.la_banquise.backend.rest.request.UserRequest;
|
||||
import fr.la_banquise.backend.rest.response.LoggedUserResponse;
|
||||
import fr.la_banquise.backend.services.UserService;
|
||||
@ -59,7 +60,7 @@ public class UserEndpoints {
|
||||
@POST
|
||||
@RolesAllowed("root")
|
||||
@Path("/jdmi")
|
||||
public Response createJdmiUsers(List<UserRequest> users) {
|
||||
public Response createJdmiUsers(BulkUserRequest users) {
|
||||
userService.createJdmiUser(users);
|
||||
return Response.ok().build();
|
||||
}
|
||||
|
@ -0,0 +1,11 @@
|
||||
package fr.la_banquise.backend.rest.request;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* UserRequest
|
||||
*/
|
||||
public class BulkUserRequest {
|
||||
public List<UserRequest> users;
|
||||
public Long tpId;
|
||||
}
|
@ -34,7 +34,8 @@ public class InstanceService {
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public Instance createInstance(String name, String ssh, String pwd, String username, int tpId) {
|
||||
public Instance createInstance(String name, String ssh, String pwd, String username, Long tpId) {
|
||||
System.out.println(tpId);
|
||||
User user = User.find("name", username).firstResult();
|
||||
Tp tp = Tp.findById(tpId);
|
||||
Instance instance = new Instance(name, ssh, pwd, user, tp);
|
||||
@ -42,6 +43,14 @@ public class InstanceService {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public Instance createInstance(String name, String ssh, String pwd, User user, Long tpId) {
|
||||
Tp tp = Tp.findById(tpId);
|
||||
Instance instance = new Instance(name, ssh, pwd, user, tp);
|
||||
instanceRepository.persist(instance);
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public boolean deleteInstance(Long id) {
|
||||
return instanceRepository.deleteById(id);
|
||||
|
@ -25,15 +25,14 @@ public class TpService {
|
||||
return tpRepository.listAll();
|
||||
}
|
||||
|
||||
public PracticalResponse getTp(Long id) {
|
||||
User user = User.find("name", "malopieds").firstResult();
|
||||
public PracticalResponse getTp(Long id, String username) {
|
||||
User user = User.find("name", username).firstResult();
|
||||
Tp tp = tpRepository.findById(id);
|
||||
Instance instance = Instance.find("user", user).firstResult();
|
||||
PracticalResponse res = new PracticalResponse(tp.name, tp.description, tp.pdfLink, tp.respo, tp.date,
|
||||
instance.name,
|
||||
instance.pwd, instance.ssh);
|
||||
return res;
|
||||
|
||||
}
|
||||
|
||||
@Transactional
|
||||
|
@ -4,8 +4,8 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import fr.la_banquise.backend.data.model.User;
|
||||
import fr.la_banquise.backend.data.repository.InstanceRepository;
|
||||
import fr.la_banquise.backend.data.repository.UserRepository;
|
||||
import fr.la_banquise.backend.rest.request.BulkUserRequest;
|
||||
import fr.la_banquise.backend.rest.request.UserRequest;
|
||||
import jakarta.enterprise.context.ApplicationScoped;
|
||||
import jakarta.inject.Inject;
|
||||
@ -50,11 +50,12 @@ public class UserService {
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public List<User> createJdmiUser(List<UserRequest> usersRequest) {
|
||||
public List<User> createJdmiUser(BulkUserRequest usersRequest) {
|
||||
List<User> users = new ArrayList<>();
|
||||
for (UserRequest user : usersRequest) {
|
||||
users.add(createUser(user.name));
|
||||
instanceService.createInstance(user.name, "test", "test", "test", 1);
|
||||
for (UserRequest user : usersRequest.users) {
|
||||
User newUser = createUser(user.name);
|
||||
users.add(newUser);
|
||||
instanceService.createInstance("test", "test", "test", user.name, usersRequest.tpId);
|
||||
}
|
||||
return new ArrayList<User>();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user