diff --git a/pom.xml b/pom.xml index 564de5f..cb6196c 100644 --- a/pom.xml +++ b/pom.xml @@ -15,6 +15,7 @@ 3.10.1 true 3.2.5 + 1.8.34 @@ -69,11 +70,21 @@ quarkus-quinoa 2.3.10 + + io.quarkus + quarkus-hibernate-orm + io.quarkus quarkus-junit5 test + + org.projectlombok + lombok + 1.18.22 + provided + diff --git a/src/main/java/fr/la_banquise/backend/AdminResource.java b/src/main/java/fr/la_banquise/backend/AdminResource.java deleted file mode 100644 index cec20d2..0000000 --- a/src/main/java/fr/la_banquise/backend/AdminResource.java +++ /dev/null @@ -1,20 +0,0 @@ -package fr.la_banquise.backend; - -import jakarta.annotation.security.RolesAllowed; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; -import io.quarkus.security.Authenticated; - -@Path("/api/admin") -@Authenticated -public class AdminResource { - - @GET - @RolesAllowed("admin") - @Produces(MediaType.TEXT_PLAIN) - public String admin() { - return "granted"; - } -} diff --git a/src/main/java/fr/la_banquise/backend/Auth.java b/src/main/java/fr/la_banquise/backend/Auth.java deleted file mode 100644 index 87b8eaf..0000000 --- a/src/main/java/fr/la_banquise/backend/Auth.java +++ /dev/null @@ -1,19 +0,0 @@ -package fr.la_banquise.backend; - -import jakarta.annotation.security.RolesAllowed; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.core.Response; - -/** - * Auth - */ -@Path("/user") -public class Auth { - - @GET - @RolesAllowed("user") - public Response hello() { - return Response.ok("Hello from Quarkus!").build(); - } -} diff --git a/src/main/java/fr/la_banquise/backend/HelloResource.java b/src/main/java/fr/la_banquise/backend/HelloResource.java deleted file mode 100644 index 90f126f..0000000 --- a/src/main/java/fr/la_banquise/backend/HelloResource.java +++ /dev/null @@ -1,24 +0,0 @@ -package fr.la_banquise.backend; - -import jakarta.inject.Inject; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.QueryParam; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; - -import io.quarkus.qute.TemplateInstance; -import io.quarkus.qute.Template; - -@Path("hello") -public class HelloResource { - - @Inject - Template hello; - - @GET - @Produces(MediaType.TEXT_PLAIN) - public TemplateInstance get(@QueryParam("name") String name) { - return hello.data("name", "malo"); - } -} diff --git a/src/main/java/fr/la_banquise/backend/Login.java b/src/main/java/fr/la_banquise/backend/Login.java deleted file mode 100644 index 14fc784..0000000 --- a/src/main/java/fr/la_banquise/backend/Login.java +++ /dev/null @@ -1,27 +0,0 @@ -package fr.la_banquise.backend; - -import io.quarkus.security.Authenticated; -import io.quarkus.security.identity.SecurityIdentity; -import jakarta.inject.Inject; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.Response; - -/** - * Login - */ -@Authenticated -@Path("/logged") -public class Login { - @Inject - SecurityIdentity identity; - - @GET - @Produces(MediaType.APPLICATION_JSON) - public Response login() { - System.out.println(identity.getPrincipal()); - return Response.ok(identity.getPrincipal()).build(); - } -} diff --git a/src/main/java/fr/la_banquise/backend/MultipartBody.java b/src/main/java/fr/la_banquise/backend/MultipartBody.java deleted file mode 100644 index d0e81a7..0000000 --- a/src/main/java/fr/la_banquise/backend/MultipartBody.java +++ /dev/null @@ -1,22 +0,0 @@ -package fr.la_banquise.backend; - -import java.io.InputStream; - -import jakarta.ws.rs.FormParam; -import jakarta.ws.rs.core.MediaType; - -import org.jboss.resteasy.annotations.providers.multipart.PartType; - -/** - * MultipartBody - */ -public class MultipartBody { - - @FormParam("file") - @PartType(MediaType.APPLICATION_OCTET_STREAM) - public InputStream file; - - @FormParam("fileName") - @PartType(MediaType.TEXT_PLAIN) - public String fileName; -} diff --git a/src/main/java/fr/la_banquise/backend/SecureResource.java b/src/main/java/fr/la_banquise/backend/SecureResource.java deleted file mode 100644 index 84be3b4..0000000 --- a/src/main/java/fr/la_banquise/backend/SecureResource.java +++ /dev/null @@ -1,21 +0,0 @@ -package fr.la_banquise.backend; - -import io.quarkus.security.Authenticated; -import jakarta.annotation.security.RolesAllowed; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; - -@Path("/mabite") -@Authenticated -public class SecureResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - @RolesAllowed("admin") - public String secure() { - return "This is a secured resource"; - } -} - diff --git a/src/main/java/fr/la_banquise/backend/Test.java b/src/main/java/fr/la_banquise/backend/Test.java deleted file mode 100644 index b57887f..0000000 --- a/src/main/java/fr/la_banquise/backend/Test.java +++ /dev/null @@ -1,21 +0,0 @@ -package fr.la_banquise.backend; - -import jakarta.annotation.security.RolesAllowed; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; - -/** - * Test - */ -@Path("/admin") -public class Test { - - @GET - @RolesAllowed("user") - @Produces(MediaType.TEXT_PLAIN) - public String test() { - return "Access for subject " + " is granted"; - } -} diff --git a/src/main/java/fr/la_banquise/backend/UsersResource.java b/src/main/java/fr/la_banquise/backend/UsersResource.java deleted file mode 100644 index 245a244..0000000 --- a/src/main/java/fr/la_banquise/backend/UsersResource.java +++ /dev/null @@ -1,82 +0,0 @@ -package fr.la_banquise.backend; - -import jakarta.annotation.security.RolesAllowed; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.Context; -import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.Response; -import jakarta.ws.rs.core.SecurityContext; - -import io.quarkus.security.Authenticated; - -@Path("/api/user") -@Authenticated -public class UsersResource { - - @GET - @Path("/me") - @Produces(MediaType.APPLICATION_JSON) - @RolesAllowed("user") - // public Response> me(@Context SecurityContext - // securityContext) { - public Response me() { - // OidcJwtCallerPrincipal principal = (OidcJwtCallerPrincipal) - // securityContext.getUserPrincipal(); - // Map claims = principal.getClaims().getClaimsMap(); - // System.out.println(claims); - - // Map userInfo = new HashMap<>(); - // userInfo.put("username", claims.get("name")); - // userInfo.put("username", "malo"); - // userInfo.put("email", token.getEmail()); - // userInfo.put("firstName", token.getGivenName()); - // userInfo.put("lastName", token.getFamilyName()); - - String test = "yess"; - return Response.ok(test).build(); - } - // @Inject - // SecurityIdentity identity; - // - // @GET - // @Path("/me") - // public User me() { - // return new User(identity); - // } - // - // public static class User { - // private final String userName; - // private final Set roles; - // private final String sshKey; - // - // User(SecurityIdentity identity) { - // this.userName = identity.getPrincipal().getName(); - // this.roles = identity.getRoles(); - // - // if (identity.getPrincipal() instanceof OidcJwtCallerPrincipal) { - // OidcJwtCallerPrincipal oidcJwtCallerPrincipal = (OidcJwtCallerPrincipal) - // identity.getPrincipal(); - // // Map claims = - // oidcJwtCallerPrincipal.getClaims().getClaimsMap(); - // // System.out.println(claims.get("ssh-key")); - // this.sshKey = (String) oidcJwtCallerPrincipal.getClaim("ssh-key"); - // } else { - // this.sshKey = null; - // } - // } - // - // public String getUserName() { - // return userName; - // } - // - // public Set getRoles() { - // return roles; - // } - // - // public String getSshKey() { - // return sshKey; - // } - // } -} diff --git a/src/main/java/fr/la_banquise/backend/api/ApiUsers.java b/src/main/java/fr/la_banquise/backend/api/ApiUsers.java deleted file mode 100644 index 6705f9a..0000000 --- a/src/main/java/fr/la_banquise/backend/api/ApiUsers.java +++ /dev/null @@ -1,94 +0,0 @@ -package fr.la_banquise.backend.api; - -import java.io.IOException; -import java.net.Authenticator; -import java.net.PasswordAuthentication; -import java.net.URI; -import java.net.http.HttpClient; -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; -import java.util.stream.Collectors; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -import fr.la_banquise.backend.api.response.LdapUserParser; -import fr.la_banquise.backend.api.response.UserLdap; -import fr.la_banquise.backend.api.response.UserLdapResponse; -import fr.la_banquise.backend.api.response.LdapUserParser.User; -import fr.la_banquise.backend.data.model.UserModel; -import fr.la_banquise.backend.domain.service.UserService; -import fr.la_banquise.backend.utils.RequestsHttp; -import io.vertx.core.json.JsonArray; -import io.vertx.core.json.JsonObject; -import jakarta.annotation.security.RolesAllowed; -import jakarta.inject.Inject; -import jakarta.ws.rs.Consumes; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.POST; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.Response; -import jakarta.ws.rs.core.MediaType; - -/** - * ApiUsers - */ -@Path("/api/users") -@Produces(MediaType.APPLICATION_JSON) -public class ApiUsers { - - @Inject - UserService userService; - - @GET - @Path("/") - @Produces(MediaType.APPLICATION_JSON) - public Response getUsers() { - return Response.ok(userService.getUsers()).build(); - } - - @POST - @RolesAllowed("admin") - @Path("sync") - public Response syncUsers() { - String jsonBody = "{\"variables\":{\"filters\":null},\"query\":\"query ListUsersQuery($filters: RequestFilter) { users(filters: $filters) { id email displayName firstName lastName creationDate }}query ListUserNames($filters: RequestFilter) { users(filters: $filters) { id displayName }}\",\"operationName\":\"ListUsersQuery\"}"; - HttpResponse response = RequestsHttp.callLdap("http://localhost:17170/api/graphql", jsonBody); - if (response == null) { - return Response.status(500).build(); - } - ObjectMapper mapper = new ObjectMapper(); - LdapUserParser users; - try { - users = mapper.readValue(response.body(), - LdapUserParser.class); - - for (User user : users.getData().getUsers()) { - UserModel existingUser = userService.getUserIdByName(user.getId()); - if (existingUser != null) { - existingUser.userId = user.getId(); - existingUser.email = user.getEmail(); - existingUser.displayName = user.getDisplayName(); - existingUser.firstName = user.getFirstName(); - existingUser.lastName = user.getLastName(); - existingUser.creationDate = user.getCreationDate(); - existingUser.avatar = user.getAvatar(); - existingUser.sshKeys = user.getSshKeys(); - userService.updateUser(existingUser); - } else { - userService.addUser(new UserModel(user.getId(), user.getEmail(), user.getDisplayName(), - user.getFirstName(), - user.getLastName(), user.getCreationDate(), user.getAvatar(), user.getSshKeys())); - } - } - if (response.statusCode() != 200) { - return Response.status(response.statusCode()).build(); - } - return Response.ok(users).build(); - } catch (JsonProcessingException e) { - e.printStackTrace(); - return Response.status(500).build(); - } - } - -} diff --git a/src/main/java/fr/la_banquise/backend/api/Dashboard.java b/src/main/java/fr/la_banquise/backend/api/Dashboard.java deleted file mode 100644 index c6b093c..0000000 --- a/src/main/java/fr/la_banquise/backend/api/Dashboard.java +++ /dev/null @@ -1,29 +0,0 @@ -package fr.la_banquise.backend.api; - -import java.util.ArrayList; -import java.util.List; - -import jakarta.annotation.security.RolesAllowed; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.Response; - -/** - * Dashboard - */ -@Path("/api") -public class Dashboard { - - @GET - @RolesAllowed("user") - @Path("/dashboard") - @Produces(MediaType.APPLICATION_JSON) - public Response getDashboard() { - List tp = new ArrayList<>(); - tp.add("Bot Discord"); - tp.add("Websocket Chat"); - return Response.ok(tp).build(); - } -} diff --git a/src/main/java/fr/la_banquise/backend/api/response/DataLdap.java b/src/main/java/fr/la_banquise/backend/api/response/DataLdap.java deleted file mode 100644 index 410546d..0000000 --- a/src/main/java/fr/la_banquise/backend/api/response/DataLdap.java +++ /dev/null @@ -1,10 +0,0 @@ -package fr.la_banquise.backend.api.response; - -import java.util.List; - -/** - * DataLdap - */ -public class DataLdap { - private List users; -} diff --git a/src/main/java/fr/la_banquise/backend/api/response/LdapUserParser.java b/src/main/java/fr/la_banquise/backend/api/response/LdapUserParser.java deleted file mode 100644 index fdca263..0000000 --- a/src/main/java/fr/la_banquise/backend/api/response/LdapUserParser.java +++ /dev/null @@ -1,102 +0,0 @@ -package fr.la_banquise.backend.api.response; - -import java.util.List; - -/** - * LdapUserParser - */ -public class LdapUserParser { - - public static class User { - private String id; - private String email; - private String displayName; - private String firstName; - private String lastName; - private String creationDate; - private String avatar; - private List sshKeys; - - // Getters and Setters - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getDisplayName() { - return displayName; - } - - public void setDisplayName(String displayName) { - this.displayName = displayName; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public String getCreationDate() { - return creationDate; - } - - public void setCreationDate(String creationDate) { - this.creationDate = creationDate; - } - - public String getAvatar() { - return avatar; - } - - public List getSshKeys() { - return sshKeys; - } - } - - public static class Data { - private List users; - - // Getter and Setter - public List getUsers() { - return users; - } - - public void setUsers(List users) { - this.users = users; - } - } - - private Data data; - - // Getter and Setter - public Data getData() { - return data; - } - - public void setData(Data data) { - this.data = data; - } - -} diff --git a/src/main/java/fr/la_banquise/backend/api/response/UserLdap.java b/src/main/java/fr/la_banquise/backend/api/response/UserLdap.java deleted file mode 100644 index 97615dc..0000000 --- a/src/main/java/fr/la_banquise/backend/api/response/UserLdap.java +++ /dev/null @@ -1,13 +0,0 @@ -package fr.la_banquise.backend.api.response; - -/** - * UserLdap - */ -public class UserLdap { - private String id; - private String email; - private String displayName; - private String firstName; - private String lastName; - private String creationDate; -} diff --git a/src/main/java/fr/la_banquise/backend/api/response/UserLdapResponse.java b/src/main/java/fr/la_banquise/backend/api/response/UserLdapResponse.java deleted file mode 100644 index b5b5a19..0000000 --- a/src/main/java/fr/la_banquise/backend/api/response/UserLdapResponse.java +++ /dev/null @@ -1,10 +0,0 @@ -package fr.la_banquise.backend.api.response; - -import java.util.List; - -/** - * UserLdapResponse - */ -public class UserLdapResponse { - private DataLdap data; -} diff --git a/src/main/java/fr/la_banquise/backend/converter/Mapper.java b/src/main/java/fr/la_banquise/backend/converter/Mapper.java deleted file mode 100644 index d1e9484..0000000 --- a/src/main/java/fr/la_banquise/backend/converter/Mapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package fr.la_banquise.backend.converter; - -import fr.la_banquise.backend.data.model.TpModel; -import fr.la_banquise.backend.domain.entity.TpItemEntity; - -/** - * Mapper - */ -public class Mapper { - public static TpItemEntity toTpEntity(TpModel tp) { - return new TpItemEntity(tp.id, tp.name, tp.description, tp.pdfLink, tp.givenLink, tp.respo, tp.endDate); - } -} diff --git a/src/main/java/fr/la_banquise/backend/data/model/Instance.java b/src/main/java/fr/la_banquise/backend/data/model/Instance.java new file mode 100644 index 0000000..23d38f7 --- /dev/null +++ b/src/main/java/fr/la_banquise/backend/data/model/Instance.java @@ -0,0 +1,33 @@ +package fr.la_banquise.backend.data.model; + +import com.fasterxml.jackson.annotation.JsonBackReference; + +import io.quarkus.hibernate.orm.panache.PanacheEntity; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; + +/** + * Instances + */ +@Entity +@AllArgsConstructor +@NoArgsConstructor +@Table(name = "instance") +public class Instance extends PanacheEntity { + public String name; + public String ssh; + public String pwd; + + @JsonBackReference + @ManyToOne + @JoinColumn(name = "user_id", nullable = false) + public User user; + + @ManyToOne + @JoinColumn(name = "practical_id") + public Tp tp; +} diff --git a/src/main/java/fr/la_banquise/backend/data/model/Tp.java b/src/main/java/fr/la_banquise/backend/data/model/Tp.java new file mode 100644 index 0000000..cf19f91 --- /dev/null +++ b/src/main/java/fr/la_banquise/backend/data/model/Tp.java @@ -0,0 +1,22 @@ +package fr.la_banquise.backend.data.model; + +import io.quarkus.hibernate.orm.panache.PanacheEntity; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; + +/** + * Tp + */ +@Entity +@NoArgsConstructor +@AllArgsConstructor +@Table(name = "tp") +public class Tp extends PanacheEntity { + public String name; + public String description; + public String pdfLink; + public String respo; + public String date; +} diff --git a/src/main/java/fr/la_banquise/backend/data/model/TpModel.java b/src/main/java/fr/la_banquise/backend/data/model/TpModel.java deleted file mode 100644 index 93cc39e..0000000 --- a/src/main/java/fr/la_banquise/backend/data/model/TpModel.java +++ /dev/null @@ -1,38 +0,0 @@ -package fr.la_banquise.backend.data.model; - - -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.Table; - -/** - * TpModel - */ -@Entity -@Table(name = "tps") -public class TpModel { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - public Long id; - public String name; - public String description; - - public String pdfLink; - public String givenLink; - public String respo; - public String endDate; - - public TpModel(String name, String description, String pdfLink, String givenLink, String respo, String endDate) { - this.name = name; - this.description = description; - this.pdfLink = pdfLink; - this.givenLink = givenLink; - this.respo = respo; - this.endDate = endDate; - } - - public TpModel() { - } -} 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 new file mode 100644 index 0000000..6b37ea0 --- /dev/null +++ b/src/main/java/fr/la_banquise/backend/data/model/User.java @@ -0,0 +1,32 @@ +package fr.la_banquise.backend.data.model; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonManagedReference; + +import io.quarkus.hibernate.orm.panache.PanacheEntity; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * User + */ +@Entity +@Table(name = "penguin") +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class User extends PanacheEntity { + public String name; + + @JsonManagedReference + @OneToMany(mappedBy = "user", cascade = CascadeType.ALL) + public List instances; +} diff --git a/src/main/java/fr/la_banquise/backend/data/model/UserModel.java b/src/main/java/fr/la_banquise/backend/data/model/UserModel.java deleted file mode 100644 index df6e1b8..0000000 --- a/src/main/java/fr/la_banquise/backend/data/model/UserModel.java +++ /dev/null @@ -1,44 +0,0 @@ -package fr.la_banquise.backend.data.model; - -import java.util.List; - -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.Table; - -/** - * UserModel - */ -@Entity -@Table(name = "users") -public class UserModel { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - public Long id; - public String userId; - public String email; - public String displayName; - public String firstName; - public String lastName; - public String creationDate; - public String avatar; - public List sshKeys; - - public UserModel(String userId, String email, String displayName, String firstName, String lastName, - String creationDate, String avatar, - List sshKeys) { - this.userId = userId; - this.email = email; - this.displayName = displayName; - this.firstName = firstName; - this.lastName = lastName; - this.creationDate = creationDate; - this.avatar = avatar; - this.sshKeys = sshKeys; - } - - public UserModel() { - } -} diff --git a/src/main/java/fr/la_banquise/backend/data/repository/InstanceRepository.java b/src/main/java/fr/la_banquise/backend/data/repository/InstanceRepository.java new file mode 100644 index 0000000..a0f6b4e --- /dev/null +++ b/src/main/java/fr/la_banquise/backend/data/repository/InstanceRepository.java @@ -0,0 +1,12 @@ +package fr.la_banquise.backend.data.repository; + +import fr.la_banquise.backend.data.model.Instance; +import io.quarkus.hibernate.orm.panache.PanacheRepository; +import jakarta.enterprise.context.ApplicationScoped; + +/** + * InstanceRepository + */ +@ApplicationScoped +public class InstanceRepository implements PanacheRepository { +} diff --git a/src/main/java/fr/la_banquise/backend/data/repository/TpRepository.java b/src/main/java/fr/la_banquise/backend/data/repository/TpRepository.java index 86e4ce6..0c5e92d 100644 --- a/src/main/java/fr/la_banquise/backend/data/repository/TpRepository.java +++ b/src/main/java/fr/la_banquise/backend/data/repository/TpRepository.java @@ -1,6 +1,6 @@ package fr.la_banquise.backend.data.repository; -import fr.la_banquise.backend.data.model.TpModel; +import fr.la_banquise.backend.data.model.Tp; import io.quarkus.hibernate.orm.panache.PanacheRepository; import jakarta.enterprise.context.ApplicationScoped; @@ -8,5 +8,6 @@ import jakarta.enterprise.context.ApplicationScoped; * TpRepository */ @ApplicationScoped -public class TpRepository implements PanacheRepository { +public class TpRepository implements PanacheRepository { + } diff --git a/src/main/java/fr/la_banquise/backend/data/repository/UserRepository.java b/src/main/java/fr/la_banquise/backend/data/repository/UserRepository.java index 078b1cd..8da6637 100644 --- a/src/main/java/fr/la_banquise/backend/data/repository/UserRepository.java +++ b/src/main/java/fr/la_banquise/backend/data/repository/UserRepository.java @@ -1,6 +1,6 @@ package fr.la_banquise.backend.data.repository; -import fr.la_banquise.backend.data.model.UserModel; +import fr.la_banquise.backend.data.model.User; import io.quarkus.hibernate.orm.panache.PanacheRepository; import jakarta.enterprise.context.ApplicationScoped; @@ -8,5 +8,5 @@ import jakarta.enterprise.context.ApplicationScoped; * UserRepository */ @ApplicationScoped -public class UserRepository implements PanacheRepository { +public class UserRepository implements PanacheRepository { } diff --git a/src/main/java/fr/la_banquise/backend/domain/entity/DashboardEntity.java b/src/main/java/fr/la_banquise/backend/domain/entity/DashboardEntity.java deleted file mode 100644 index 05968f8..0000000 --- a/src/main/java/fr/la_banquise/backend/domain/entity/DashboardEntity.java +++ /dev/null @@ -1,13 +0,0 @@ -package fr.la_banquise.backend.domain.entity; - -import java.util.Set; - -/** - * DashboardEntity - */ -public class DashboardEntity { - public Set tps; - public Set instances; - public Set messages; - public String userName; -} diff --git a/src/main/java/fr/la_banquise/backend/domain/entity/DashboardItem.java b/src/main/java/fr/la_banquise/backend/domain/entity/DashboardItem.java deleted file mode 100644 index 86c51cf..0000000 --- a/src/main/java/fr/la_banquise/backend/domain/entity/DashboardItem.java +++ /dev/null @@ -1,11 +0,0 @@ -package fr.la_banquise.backend.domain.entity; - -/** - * DashboardItem - */ -public class DashboardItem { - public Long id; - public String name; - public String description; - public String link; -} diff --git a/src/main/java/fr/la_banquise/backend/domain/entity/TpItemEntity.java b/src/main/java/fr/la_banquise/backend/domain/entity/TpItemEntity.java deleted file mode 100644 index 8f02ee5..0000000 --- a/src/main/java/fr/la_banquise/backend/domain/entity/TpItemEntity.java +++ /dev/null @@ -1,24 +0,0 @@ -package fr.la_banquise.backend.domain.entity; - -/** - * TpItemEntity - */ -public class TpItemEntity { - public Long id; - public String name; - public String description; - public String pdfLink; - public String givenLink; - public String respo; - public String endDate; - - public TpItemEntity(Long id, String name, String description,String pdfLink, String givenLink, String respo, String endDate) { - this.id = id; - this.name = name; - this.description = description; - this.pdfLink = pdfLink; - this.givenLink = givenLink; - this.respo = respo; - this.endDate = endDate; - } -} diff --git a/src/main/java/fr/la_banquise/backend/domain/entity/UserEntity.java b/src/main/java/fr/la_banquise/backend/domain/entity/UserEntity.java deleted file mode 100644 index 38e131a..0000000 --- a/src/main/java/fr/la_banquise/backend/domain/entity/UserEntity.java +++ /dev/null @@ -1,27 +0,0 @@ -package fr.la_banquise.backend.domain.entity; - -import java.util.List; - -/** - * UserEntity - */ -public class UserEntity { - public Long id; - public String userId; - public String displayName; - public String firstName; - public String lastName; - public String avatar; - public List sshKeys; - - public UserEntity(String userId, String displayName, String firstName, String lastName, String avatar, - List sshKeys) { - this.userId = userId; - this.displayName = displayName; - this.firstName = firstName; - this.lastName = lastName; - this.avatar = avatar; - this.sshKeys = sshKeys; - } - -} diff --git a/src/main/java/fr/la_banquise/backend/domain/service/DashboardItemService.java b/src/main/java/fr/la_banquise/backend/domain/service/DashboardItemService.java deleted file mode 100644 index cd6ae37..0000000 --- a/src/main/java/fr/la_banquise/backend/domain/service/DashboardItemService.java +++ /dev/null @@ -1,48 +0,0 @@ -package fr.la_banquise.backend.domain.service; - -import java.util.HashSet; -import java.util.Set; -import java.util.stream.Collectors; - -import fr.la_banquise.backend.converter.Mapper; -import fr.la_banquise.backend.data.model.TpModel; -import fr.la_banquise.backend.data.repository.TpRepository; -import fr.la_banquise.backend.domain.entity.TpItemEntity; -import fr.la_banquise.backend.presentation.rest.request.TpForm; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import jakarta.persistence.EntityManager; -import jakarta.transaction.Transactional; - -/** - * DashboardItemService - */ -@ApplicationScoped -public class DashboardItemService { - @Inject - EntityManager em; - - @Inject - TpRepository tpRepository; - - public Set getTps(){ - Set tpModels = tpRepository.findAll().stream().collect(Collectors.toSet()); - Set res = new HashSet<>(); - tpModels.forEach(tp -> { - res.add(Mapper.toTpEntity(tp)); - }); - return res; - } - - public TpItemEntity getTp(long id){ - TpModel tp = tpRepository.findById(id); - return Mapper.toTpEntity(tp); - } - - @Transactional - public TpItemEntity newTp(TpForm tp){ - TpModel newTp = new TpModel(tp.title, tp.description, tp.pdflink, tp.givenlink, tp.respo, tp.date); - em.persist(newTp); - return Mapper.toTpEntity(newTp); - } -} diff --git a/src/main/java/fr/la_banquise/backend/domain/service/UserService.java b/src/main/java/fr/la_banquise/backend/domain/service/UserService.java deleted file mode 100644 index dfacecd..0000000 --- a/src/main/java/fr/la_banquise/backend/domain/service/UserService.java +++ /dev/null @@ -1,45 +0,0 @@ -package fr.la_banquise.backend.domain.service; - -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; - -import fr.la_banquise.backend.data.model.UserModel; -import fr.la_banquise.backend.data.repository.UserRepository; -import fr.la_banquise.backend.domain.entity.UserEntity; -import io.quarkus.hibernate.orm.panache.PanacheEntity; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import jakarta.persistence.EntityManager; -import jakarta.transaction.Transactional; - -/** - * UserService - */ -@ApplicationScoped -public class UserService { - @Inject - EntityManager em; - - @Inject - UserRepository userRepository; - - public List getUsers() { - return userRepository.listAll(); - } - - public UserModel getUserIdByName(String userId) { - return userRepository.find("userId", userId.toString()).firstResult(); - } - - @Transactional - public void addUser(UserModel user) { - userRepository.persist(user); - } - - @Transactional - public void updateUser(UserModel user) { - userRepository.getEntityManager().merge(user); - } - -} diff --git a/src/main/java/fr/la_banquise/backend/presentation/resources/AdminResource.java b/src/main/java/fr/la_banquise/backend/presentation/resources/AdminResource.java deleted file mode 100644 index f5a9d6c..0000000 --- a/src/main/java/fr/la_banquise/backend/presentation/resources/AdminResource.java +++ /dev/null @@ -1,26 +0,0 @@ -package fr.la_banquise.backend.presentation.resources; - -import io.quarkus.qute.Template; -import io.quarkus.qute.TemplateInstance; -import jakarta.annotation.security.RolesAllowed; -import jakarta.inject.Inject; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; - -/** - * AdminResource - */ -@Path("admin") -public class AdminResource { - @Inject - Template admin; - - @GET - @Produces(MediaType.TEXT_HTML) - @RolesAllowed("admin") - public TemplateInstance admin(){ - return admin.data("", ""); - } -} diff --git a/src/main/java/fr/la_banquise/backend/presentation/resources/DashboardResource.java b/src/main/java/fr/la_banquise/backend/presentation/resources/DashboardResource.java deleted file mode 100644 index 9d4da9e..0000000 --- a/src/main/java/fr/la_banquise/backend/presentation/resources/DashboardResource.java +++ /dev/null @@ -1,43 +0,0 @@ -package fr.la_banquise.backend.presentation.resources; - -import java.util.Set; - -import fr.la_banquise.backend.domain.entity.DashboardEntity; -import fr.la_banquise.backend.domain.entity.TpItemEntity; -import fr.la_banquise.backend.domain.service.DashboardItemService; -import io.quarkus.qute.Template; -import io.quarkus.qute.TemplateInstance; -import io.quarkus.security.Authenticated; -import jakarta.inject.Inject; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.Context; -import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.SecurityContext; - -/** - * DashboardResource - */ -@Path("dashboard") -@Authenticated -public class DashboardResource { - - @Inject - Template dashboard; - - @Inject - DashboardItemService dashboardItemService; - - @GET - @Produces(MediaType.TEXT_HTML) - public TemplateInstance dashboard(@Context SecurityContext securityContext){ - Set tps = dashboardItemService.getTps(); - var dash = new DashboardEntity(); - dash.tps = tps; - var user = securityContext.getUserPrincipal(); - dash.userName = user.getName(); - return dashboard.data(dash); - } -} - diff --git a/src/main/java/fr/la_banquise/backend/presentation/resources/TpResource.java b/src/main/java/fr/la_banquise/backend/presentation/resources/TpResource.java deleted file mode 100644 index bda12fc..0000000 --- a/src/main/java/fr/la_banquise/backend/presentation/resources/TpResource.java +++ /dev/null @@ -1,36 +0,0 @@ -package fr.la_banquise.backend.presentation.resources; - -import fr.la_banquise.backend.domain.entity.TpItemEntity; -import fr.la_banquise.backend.domain.service.DashboardItemService; -import io.quarkus.qute.Template; -import io.quarkus.qute.TemplateInstance; -import io.quarkus.security.Authenticated; -import jakarta.inject.Inject; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.PathParam; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; - -/** - * TpResource - */ -@Path("/tps") -public class TpResource { - @Inject - Template tp; - - @Inject - DashboardItemService dashboardItemService; - - @Path("/{id}") - @GET - @Authenticated - @Produces(MediaType.TEXT_HTML) - public TemplateInstance tp(@PathParam("id") long id){ - // if not available 404 - // load it from db - TpItemEntity tpItem = dashboardItemService.getTp(id); - return tp.data(tpItem); - } -} diff --git a/src/main/java/fr/la_banquise/backend/presentation/rest/ApiEndpoints.java b/src/main/java/fr/la_banquise/backend/presentation/rest/ApiEndpoints.java deleted file mode 100644 index 5abb714..0000000 --- a/src/main/java/fr/la_banquise/backend/presentation/rest/ApiEndpoints.java +++ /dev/null @@ -1,28 +0,0 @@ -package fr.la_banquise.backend.presentation.rest; - -import fr.la_banquise.backend.domain.service.DashboardItemService; -import fr.la_banquise.backend.presentation.rest.request.TpForm; -import jakarta.inject.Inject; -import jakarta.ws.rs.Consumes; -import jakarta.ws.rs.POST; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.Response; - -/** - * ApiEndpoints - */ -@Path("/api") -public class ApiEndpoints { - - @Inject - DashboardItemService dashboardItemService; - - @POST - @Consumes(MediaType.APPLICATION_JSON) - @Path("/tp") - public Response newTp(TpForm tp){ - var newTp = dashboardItemService.newTp(tp); - return Response.ok(newTp).build(); - } -} diff --git a/src/main/java/fr/la_banquise/backend/rest/InstanceEndpoints.java b/src/main/java/fr/la_banquise/backend/rest/InstanceEndpoints.java new file mode 100644 index 0000000..cdd5b14 --- /dev/null +++ b/src/main/java/fr/la_banquise/backend/rest/InstanceEndpoints.java @@ -0,0 +1,31 @@ +package fr.la_banquise.backend.rest; + +import fr.la_banquise.backend.services.InstanceService; +import io.quarkus.security.identity.SecurityIdentity; +import jakarta.inject.Inject; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; + +/** + * InstanceEndpoints + */ +@Path("/api/instances") +@Produces(MediaType.APPLICATION_JSON) +public class InstanceEndpoints { + + @Inject + SecurityIdentity identity; + + @Inject + InstanceService instanceService; + + @GET + public Response getAllInstances() { + System.out.println(identity.getPrincipal()); + String username = identity.getPrincipal().getName(); + return Response.ok(instanceService.getAllInstances(username)).build(); + } +} diff --git a/src/main/java/fr/la_banquise/backend/rest/TpEndpoints.java b/src/main/java/fr/la_banquise/backend/rest/TpEndpoints.java new file mode 100644 index 0000000..b9ff62d --- /dev/null +++ b/src/main/java/fr/la_banquise/backend/rest/TpEndpoints.java @@ -0,0 +1,47 @@ +package fr.la_banquise.backend.rest; + +import fr.la_banquise.backend.services.TpService; +import fr.la_banquise.backend.rest.request.TpForm; +import fr.la_banquise.backend.rest.request.TpRequest; +import jakarta.annotation.security.RolesAllowed; +import jakarta.inject.Inject; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; + +/** + * TpEndpoints + */ +@Path("/api/tps") +public class TpEndpoints { + + @Inject + TpService tpService; + + @GET + @RolesAllowed("pingouin") + @Produces(MediaType.APPLICATION_JSON) + public Response getAllTps() { + return Response.ok(tpService.getAllTps()).build(); + } + + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("{id}") + public Response getTp(@PathParam("id") Long id) { + return Response.ok(tpService.getTp(id)).build(); + } + + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response createTp(TpRequest tp) { + System.out.println(tp.date); + return Response.ok(tpService.createTp(tp)).build(); + } +} diff --git a/src/main/java/fr/la_banquise/backend/rest/UserEndpoints.java b/src/main/java/fr/la_banquise/backend/rest/UserEndpoints.java new file mode 100644 index 0000000..dc73bed --- /dev/null +++ b/src/main/java/fr/la_banquise/backend/rest/UserEndpoints.java @@ -0,0 +1,43 @@ +package fr.la_banquise.backend.rest; + +import fr.la_banquise.backend.rest.request.UserRequest; +import fr.la_banquise.backend.services.UserService; +import jakarta.annotation.security.RolesAllowed; +import jakarta.inject.Inject; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; + +/** + * UserEndpoints + */ +@Path("/api/users") +@Produces(MediaType.APPLICATION_JSON) +public class UserEndpoints { + + @Inject + UserService userService; + + @GET + @RolesAllowed("pingouin") + public Response getAllUsers() { + return Response.ok(userService.getAllUsers()).build(); + } + + @GET + @RolesAllowed("pingouin") + @Path("{id}") + public Response getUser(@PathParam("id") Long id) { + return Response.ok(userService.getUser(id)).build(); + } + + @POST + @RolesAllowed("admin") + public Response createUser(UserRequest user) { + return Response.ok(userService.crateUser(user.firstName, user.lastName)).build(); + } +} diff --git a/src/main/java/fr/la_banquise/backend/presentation/rest/request/TpForm.java b/src/main/java/fr/la_banquise/backend/rest/request/TpForm.java similarity index 57% rename from src/main/java/fr/la_banquise/backend/presentation/rest/request/TpForm.java rename to src/main/java/fr/la_banquise/backend/rest/request/TpForm.java index 19938ea..d104ec5 100644 --- a/src/main/java/fr/la_banquise/backend/presentation/rest/request/TpForm.java +++ b/src/main/java/fr/la_banquise/backend/rest/request/TpForm.java @@ -1,4 +1,4 @@ -package fr.la_banquise.backend.presentation.rest.request; +package fr.la_banquise.backend.rest.request; import jakarta.ws.rs.FormParam; @@ -10,12 +10,12 @@ public class TpForm { public String title; @FormParam(value = "description") public String description; - @FormParam(value = "pdflink") + @FormParam(value = "pdf") public String pdflink; - @FormParam(value = "givenlink") - public String givenlink; - @FormParam(value = "respo") - public String respo; @FormParam(value = "date") public String date; + @FormParam(value = "difficulty") + public String difficulty; + @FormParam(value = "duration") + public String duration; } diff --git a/src/main/java/fr/la_banquise/backend/rest/request/TpRequest.java b/src/main/java/fr/la_banquise/backend/rest/request/TpRequest.java new file mode 100644 index 0000000..e886261 --- /dev/null +++ b/src/main/java/fr/la_banquise/backend/rest/request/TpRequest.java @@ -0,0 +1,14 @@ +package fr.la_banquise.backend.rest.request; + +/** + * TpRequest + */ +public class TpRequest { + public String title; + public String description; + public String pdf; + public Long duration; + public String tools; + public String difficulty; + public String date; +} diff --git a/src/main/java/fr/la_banquise/backend/rest/request/UserRequest.java b/src/main/java/fr/la_banquise/backend/rest/request/UserRequest.java new file mode 100644 index 0000000..ac0eb95 --- /dev/null +++ b/src/main/java/fr/la_banquise/backend/rest/request/UserRequest.java @@ -0,0 +1,9 @@ +package fr.la_banquise.backend.rest.request; + +/** + * UserRequest + */ +public class UserRequest { + public String firstName; + public String lastName; +} diff --git a/src/main/java/fr/la_banquise/backend/rest/response/PracticalResponse.java b/src/main/java/fr/la_banquise/backend/rest/response/PracticalResponse.java new file mode 100644 index 0000000..b5585dd --- /dev/null +++ b/src/main/java/fr/la_banquise/backend/rest/response/PracticalResponse.java @@ -0,0 +1,19 @@ +package fr.la_banquise.backend.rest.response; + +import lombok.AllArgsConstructor; + +/** + * PracticalResponse + */ +@AllArgsConstructor +public class PracticalResponse { + public String name; + public String description; + public String pdfLink; + public String respo; + public String endDate; + + public String instanceName; + public String pwd; + public String ssh; +} diff --git a/src/main/java/fr/la_banquise/backend/services/InstanceService.java b/src/main/java/fr/la_banquise/backend/services/InstanceService.java new file mode 100644 index 0000000..ed1cdb1 --- /dev/null +++ b/src/main/java/fr/la_banquise/backend/services/InstanceService.java @@ -0,0 +1,53 @@ +package fr.la_banquise.backend.services; + +import java.util.List; + +import fr.la_banquise.backend.data.model.Instance; +import fr.la_banquise.backend.data.model.User; +import fr.la_banquise.backend.data.repository.InstanceRepository; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.transaction.Transactional; + +/** + * InstanceService + */ +@ApplicationScoped +public class InstanceService { + + @Inject + InstanceRepository instanceRepository; + + public List getAllInstances() { + return instanceRepository.findAll().list(); + } + + public List getAllInstances(String username) { + User user = User.find("name", username).firstResult(); + System.out.println(username); + return instanceRepository.find("user", user).list(); + } + + public Instance getInstance(Long id) { + return instanceRepository.findById(id); + } + + @Transactional + public Instance createInstance(String name, String ssh, String pwd) { + User admin = User.find("name", "admin").firstResult(); + Instance instance = new Instance(name, ssh, pwd, admin, null); + instanceRepository.persist(instance); + return instance; + } + + @Transactional + public boolean deleteInstance(Long id) { + return instanceRepository.deleteById(id); + } + + @Transactional + public Instance updateInstance(Long id) { + Instance instance = instanceRepository.findById(id); + return instance; + } +} diff --git a/src/main/java/fr/la_banquise/backend/services/TpService.java b/src/main/java/fr/la_banquise/backend/services/TpService.java new file mode 100644 index 0000000..6b0f7bd --- /dev/null +++ b/src/main/java/fr/la_banquise/backend/services/TpService.java @@ -0,0 +1,57 @@ +package fr.la_banquise.backend.services; + +import java.util.List; + +import fr.la_banquise.backend.data.model.Instance; +import fr.la_banquise.backend.data.model.Tp; +import fr.la_banquise.backend.data.model.User; +import fr.la_banquise.backend.data.repository.TpRepository; +import fr.la_banquise.backend.rest.request.TpRequest; +import fr.la_banquise.backend.rest.response.PracticalResponse; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.transaction.Transactional; + +/** + * TpService + */ +@ApplicationScoped +public class TpService { + + @Inject + TpRepository tpRepository; + + public List getAllTps() { + return tpRepository.listAll(); + } + + public PracticalResponse getTp(Long id) { + User user = User.find("name", "malopieds").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 + public Tp createTp(TpRequest requestTp) { + User user = User.find("name", "admin").firstResult(); + Tp tp = new Tp(requestTp.title, requestTp.description, requestTp.pdf, "", requestTp.date); + tpRepository.persist(tp); + return tp; + } + + @Transactional + public void deleteTp(Long id) { + tpRepository.deleteById(id); + } + + @Transactional + public Tp updateTp(Long id) { + Tp tp = tpRepository.findById(id); + return tp; + } +} diff --git a/src/main/java/fr/la_banquise/backend/services/UserService.java b/src/main/java/fr/la_banquise/backend/services/UserService.java new file mode 100644 index 0000000..aab15d6 --- /dev/null +++ b/src/main/java/fr/la_banquise/backend/services/UserService.java @@ -0,0 +1,46 @@ +package fr.la_banquise.backend.services; + +import java.util.List; + +import fr.la_banquise.backend.data.model.User; +import fr.la_banquise.backend.data.repository.UserRepository; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.transaction.Transactional; + +/** + * UserService + */ +@ApplicationScoped +public class UserService { + + @Inject + UserRepository userRepository; + + public List getAllUsers() { + return userRepository.listAll(); + } + + public User getUser(Long id) { + return userRepository.findById(id); + } + + @Transactional + public User crateUser(String firstName, String lastName) { + User user = new User(firstName, lastName); + userRepository.persist(user); + return user; + } + + @Transactional + public void deleteUser(Long id) { + userRepository.deleteById(id); + } + + @Transactional + public User updateUser(Long id) { + User user = userRepository.findById(id); + return user; + } + +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index bc12326..8a77460 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -18,8 +18,8 @@ quarkus.security.ldap.dir-context.principal=uid=admin,ou=people,dc=example,dc=co quarkus.security.ldap.dir-context.url=ldap://localhost:3890 quarkus.security.ldap.dir-context.password=password -quarkus.http.auth.form.login-page=/login -quarkus.http.auth.form.landing-page=hello +quarkus.http.auth.form.login-page= +quarkus.http.auth.form.landing-page= quarkus.security.ldap.identity-mapping.rdn-identifier=uid quarkus.security.ldap.identity-mapping.search-base-dn=ou=people,dc=example,dc=com @@ -29,7 +29,6 @@ quarkus.security.ldap.identity-mapping.attribute-mappings."0".filter=(member=uid quarkus.security.ldap.identity-mapping.attribute-mappings."0".filter-base-dn=ou=groups,dc=example,dc=com %test.quarkus.security.ldap.dir-context.url=ldap://127.0.0.1:10389 -quarkus.quinoa.dev-server.port=5173 # database quarkus.datasource.db-kind = postgresql @@ -39,3 +38,7 @@ quarkus.datasource.jdbc.url = jdbc:postgresql://localhost:5432/quarkus # drop and create the database at startup (use `update` to only update the schema)drop-and-create quarkus.hibernate-orm.database.generation=update +# quarkus.hibernate-orm.database.generation=drop-and-create + +quarkus.quinoa.dev-server.port=5173 +quarkus.quinoa.enable-spa-routing=true diff --git a/src/main/resources/templates/admin.html b/src/main/resources/templates/admin.html deleted file mode 100644 index f532df8..0000000 --- a/src/main/resources/templates/admin.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - Admin Dashboard - - - -
-

Admin Dashboard

-
- - - -
- - - -
-

Other Functionalities

-

You can add more admin functionalities here.

-
-
- - - diff --git a/src/main/resources/templates/dashboard.html b/src/main/resources/templates/dashboard.html deleted file mode 100644 index 0b28e32..0000000 --- a/src/main/resources/templates/dashboard.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - Dashboard - - - -
-

WELCOME {userName}!

-
- -
-
-

Practicals

-
- {#if tps.orEmpty.size == 0} -
-

You have no practicals

-
- {/if} - {#for tp in tps} - -

{tp.name}

-

{tp.description}

-
- {/for} -
-
- -
-

Instances

-
- {#if instances == null } -
-

You have no instances

-
- {/if} - {#for instance in instances} - -

{instance.name}

-

{instance.description}

-
- {/for} -
- -
-

Messages

-
- {#if messages == null } -
-

You have no messages

-
- {/if} - {#for message in messages} - -

{message.name}

-

{message.description}

-
- {/for} -
-
- - diff --git a/src/main/resources/templates/hello.txt b/src/main/resources/templates/hello.txt deleted file mode 100644 index 9da67c7..0000000 --- a/src/main/resources/templates/hello.txt +++ /dev/null @@ -1 +0,0 @@ -Hello {name}! diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html deleted file mode 100644 index 6e7c1e6..0000000 --- a/src/main/resources/templates/index.html +++ /dev/null @@ -1 +0,0 @@ -

hello

diff --git a/src/main/resources/templates/pub/helloe.html b/src/main/resources/templates/pub/helloe.html deleted file mode 100644 index 2adece7..0000000 --- a/src/main/resources/templates/pub/helloe.html +++ /dev/null @@ -1 +0,0 @@ -

Hello {http:param('name', 'Quarkus')}!

diff --git a/src/main/resources/templates/pub/index.html b/src/main/resources/templates/pub/index.html deleted file mode 100644 index 986a4a1..0000000 --- a/src/main/resources/templates/pub/index.html +++ /dev/null @@ -1 +0,0 @@ -

Hello

diff --git a/src/main/resources/templates/pub/login.html b/src/main/resources/templates/pub/login.html deleted file mode 100644 index e7e866d..0000000 --- a/src/main/resources/templates/pub/login.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - Login Form - - - - - Example Image -

Login

-
-
- - -
-
- - -
- - -
- -
- -
- - - - - - - - diff --git a/src/main/resources/templates/pub/test.html b/src/main/resources/templates/pub/test.html deleted file mode 100644 index 81505d0..0000000 --- a/src/main/resources/templates/pub/test.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - Login - - -
- -

- -

- -
- - - - - diff --git a/src/main/resources/templates/tp.html b/src/main/resources/templates/tp.html deleted file mode 100644 index 0736c12..0000000 --- a/src/main/resources/templates/tp.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - Practical Details - - - -
-
-
-

{name}

-
- - -
-
- -
-
-
- -
- -
-
-

Informations

-

Responsable: {respo}

-

Date de fin: {endDate}

-
-
-

Resources

-

acces SSH: ssh todo

-

mot de passe: pwd todo

-
- -
-
Subject
-

Download

-
- - - - - - -
- {#if givenLink != ''} - -
-
Given files
-

Download

-
- - - - - - -
- {/if} -
-
- - - diff --git a/src/main/webui b/src/main/webui new file mode 160000 index 0000000..de26f9f --- /dev/null +++ b/src/main/webui @@ -0,0 +1 @@ +Subproject commit de26f9f69dcce2b0b082f87d1954276de67da483