diff --git a/src/main/java/fr/la_banquise/backend/data/model/User.java b/src/main/java/fr/la_banquise/backend/data/model/User.java index 7074fba..e331203 100644 --- a/src/main/java/fr/la_banquise/backend/data/model/User.java +++ b/src/main/java/fr/la_banquise/backend/data/model/User.java @@ -48,26 +48,26 @@ public class User { public Long id; @Username public String name; @Password public String password; - + @Enumerated(EnumType.STRING) @ElementCollection(fetch = FetchType.EAGER) @CollectionTable(name = "user_roles") public Set role; - + /////////////////////////////////////////////////////////////////////////// // Dans l'ordre d'affichage dans le dashboard : @ManyToMany(mappedBy = "respos", cascade = CascadeType.ALL) - public List jiRespo; - + public List jiRespo; // JI dont user est respo + @ManyToMany(mappedBy = "participants", cascade = CascadeType.ALL) - public List jiParticipant; + public List jiParticipant; // JI ou user est participant + + @ManyToMany(mappedBy = "respos", cascade = CascadeType.ALL) + public List sujetRespo; // Sujet ou user est respo + /////////////////////////////////////////////////////////////////////////// @OneToMany(mappedBy = "owner", cascade = CascadeType.ALL) - public List instances; - - @ManyToMany(mappedBy = "respos", cascade = CascadeType.ALL) - public List sujetRespo; - /////////////////////////////////////////////////////////////////////////// + public List instances; // mouai, pas a afficher // Méthode pour Quarkus Security - conversion simple @RolesValue diff --git a/src/main/java/fr/la_banquise/backend/rest/Endpoints.java b/src/main/java/fr/la_banquise/backend/rest/Endpoints.java index 3918dec..3d368e8 100644 --- a/src/main/java/fr/la_banquise/backend/rest/Endpoints.java +++ b/src/main/java/fr/la_banquise/backend/rest/Endpoints.java @@ -1,8 +1,10 @@ package fr.la_banquise.backend.rest; +import fr.la_banquise.backend.data.model.User; import fr.la_banquise.backend.rest.response.DashboardResponse; import fr.la_banquise.backend.services.InstanceService; import fr.la_banquise.backend.services.SujetService; +import fr.la_banquise.backend.services.UserService; import io.quarkus.security.Authenticated; import io.quarkus.security.identity.SecurityIdentity; import jakarta.inject.Inject; @@ -21,16 +23,21 @@ public class Endpoints { @Inject InstanceService instanceService; @Inject SujetService sujetService; + @Inject UserService userService; + @GET @Authenticated @Path("dashboard") public Response getDashboard() { - String username = identity.getPrincipal().getName(); + User user = userService.getUser(identity.getPrincipal().getName()); DashboardResponse dashboard = new DashboardResponse(); - dashboard.tps = - sujetService.getAllSujetsRespo(identity.getPrincipal().getName()); - // dashboard.instances = instanceService.getAllInstances(username); + dashboard.roles = user.getRoles(); + + dashboard.jiRespo = user.jiRespo; + dashboard.jiParticipant = user.jiParticipant; + dashboard.sujetRespo = user.sujetRespo; + return Response.ok(dashboard).build(); } } diff --git a/src/main/java/fr/la_banquise/backend/rest/response/DashboardResponse.java b/src/main/java/fr/la_banquise/backend/rest/response/DashboardResponse.java index fcc3fde..65504b9 100644 --- a/src/main/java/fr/la_banquise/backend/rest/response/DashboardResponse.java +++ b/src/main/java/fr/la_banquise/backend/rest/response/DashboardResponse.java @@ -1,17 +1,30 @@ package fr.la_banquise.backend.rest.response; -import java.util.List; - import fr.la_banquise.backend.data.model.Instance; +import fr.la_banquise.backend.data.model.Ji; import fr.la_banquise.backend.data.model.Sujet; import io.quarkus.runtime.annotations.RegisterForReflection; -import lombok.AllArgsConstructor; +import java.util.List; +import java.util.Set; /** * DashboardResponse */ @RegisterForReflection public class DashboardResponse { - public List tps; - public List instances; + + + /////////////////////////////////////////////////////////////////////////// + ////// Dans l'ordre d'affichage dans le dashboard : + // Profil + public String name; + public Set roles; + + // A afficher dans des blocs differents + public List jiRespo; + + public List jiParticipant; + + public List sujetRespo; + /////////////////////////////////////////////////////////////////////////// } diff --git a/src/main/java/fr/la_banquise/backend/services/InstanceService.java b/src/main/java/fr/la_banquise/backend/services/InstanceService.java index 3aa3e94..c89e419 100644 --- a/src/main/java/fr/la_banquise/backend/services/InstanceService.java +++ b/src/main/java/fr/la_banquise/backend/services/InstanceService.java @@ -1,12 +1,6 @@ package fr.la_banquise.backend.services; -import com.github.dockerjava.api.DockerClient; -import com.github.dockerjava.api.command.CreateContainerResponse; import com.github.dockerjava.api.command.InspectContainerResponse; -import com.github.dockerjava.api.model.ExposedPort; -import com.github.dockerjava.api.model.HostConfig; -import com.github.dockerjava.api.model.Ports; - import fr.la_banquise.backend.data.model.Instance; import fr.la_banquise.backend.data.model.Ji; import fr.la_banquise.backend.data.model.User; @@ -16,11 +10,8 @@ import fr.la_banquise.backend.data.repository.UserRepository; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.transaction.Transactional; - -import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.Set; /** @@ -70,7 +61,7 @@ public class InstanceService { return dockerService.createContainer(instance.name, instance.port); } - + public boolean deleteContainer(Long id) { Instance instance = instanceRepository.findById(id); @@ -111,5 +102,4 @@ public class InstanceService { return retour; } - } diff --git a/src/main/java/fr/la_banquise/backend/services/UserService.java b/src/main/java/fr/la_banquise/backend/services/UserService.java index b056230..1fbbbdb 100644 --- a/src/main/java/fr/la_banquise/backend/services/UserService.java +++ b/src/main/java/fr/la_banquise/backend/services/UserService.java @@ -14,7 +14,6 @@ import io.quarkus.elytron.security.common.BcryptUtil; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.transaction.Transactional; -import java.util.ArrayList; import java.util.List; /** @@ -30,6 +29,7 @@ public class UserService { public List getAllUsers() { return userRepository.listAll(); } public User getUser(Long id) { return userRepository.findById(id); } + public User getUser(String name) { return userRepository.findByName(name); } @Transactional public User createUser(UserRequest request) { @@ -94,8 +94,7 @@ public class UserService { } return response; - } - + } public RolesAsso fromString(String role_str) { return switch (role_str) { @@ -118,5 +117,4 @@ public class UserService { User user = userRepository.findById(userId); user.role.remove(fromString(role)); } - } diff --git a/src/main/resources/import-dev.sql b/src/main/resources/import-dev.sql index dc81df7..080a4d5 100644 --- a/src/main/resources/import-dev.sql +++ b/src/main/resources/import-dev.sql @@ -1,6 +1,6 @@ -- Ce fichier est exécuté automatiquement en mode dev -INSERT INTO penguin (name, password) VALUES ('root', '$2a$10$lzKAv4aj6s0jtneg0Ikx/eEBb6p.6N6yo7ZF.myqYxEA9MWbMwvNu'); +INSERT INTO penguin (name, password) VALUES ('root', '$2a$12$o8FSg6JaPwW4h9OnEDT0VOOlf2K/mVg.rhPyRbQzgKybqb9obYyGS'); INSERT INTO user_roles (User_id, role) VALUES (1, 'ROOT'); -INSERT INTO site (name, description, address) VALUES ('test', 'test', 'test'); -INSERT INTO ji (name, description, date, site_id) VALUES ('ji', 'test', 'date', 1); -INSERT INTO ji_respos (ji_id, User_id) VALUES (1, 1); +-- INSERT INTO site (name, description, address) VALUES ('test', 'test', 'test'); +-- INSERT INTO ji (name, description, date, site_id) VALUES ('ji', 'test', 'date', 1); +-- INSERT INTO ji_respos (ji_id, User_id) VALUES (1, 1);