diff --git a/build.gradle b/build.gradle index d8ccdf1..1c20a5e 100644 --- a/build.gradle +++ b/build.gradle @@ -3,15 +3,15 @@ buildscript { mavenCentral() } dependencies { - classpath 'org.flywaydb:flyway-database-postgresql:11.3.2' - classpath 'org.postgresql:postgresql:42.7.5' + classpath 'org.flywaydb:flyway-database-postgresql:_' + classpath 'org.postgresql:postgresql:_' } } plugins { id 'java' - id 'org.springframework.boot' version '3.4.2' - id 'org.flywaydb.flyway' version "11.3.2" - id 'io.spring.dependency-management' version '1.1.7' + id 'org.springframework.boot' + id 'org.flywaydb.flyway' + id 'io.spring.dependency-management' } @@ -29,33 +29,33 @@ repositories { } dependencies { - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'org.springframework.boot:spring-boot-starter-jdbc' - implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' - implementation 'org.springframework.boot:spring-boot-starter-security' - implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.3.RELEASE' - implementation 'org.springframework.boot:spring-boot-starter-web' - implementation 'org.springframework:spring-jdbc' - implementation 'org.flywaydb:flyway-core:11.3.2' - implementation 'org.flywaydb:flyway-database-postgresql:11.3.2' - implementation 'org.springframework.session:spring-session-jdbc' - implementation 'jakarta.validation:jakarta.validation-api:3.1.1' - runtimeOnly 'org.webjars:jquery:1.9.1' - developmentOnly 'org.springframework.boot:spring-boot-devtools' - developmentOnly 'org.springframework.boot:spring-boot-docker-compose' - runtimeOnly 'org.postgresql:postgresql' - testImplementation 'org.springframework.boot:spring-boot-starter-test' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + implementation Spring.boot.data.jpa + implementation Spring.boot.jdbc + implementation Spring.boot.thymeleaf + implementation Spring.boot.security + implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6:_' + implementation Spring.boot.web + implementation 'org.springframework:spring-jdbc:_' + implementation 'org.flywaydb:flyway-core:_' + implementation 'org.flywaydb:flyway-database-postgresql:_' + implementation Spring.session.jdbc + implementation 'jakarta.validation:jakarta.validation-api:_' + runtimeOnly 'org.webjars:jquery:_' + developmentOnly Spring.boot.devTools + developmentOnly 'org.springframework.boot:spring-boot-docker-compose:_' + runtimeOnly 'org.postgresql:postgresql:_' + testImplementation Spring.boot.test + testRuntimeOnly 'org.junit.platform:junit-platform-launcher:_' - implementation 'com.fasterxml.jackson.core:jackson-databind' - implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5:2.18.2' + implementation 'com.fasterxml.jackson.core:jackson-databind:_' + implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5:_' //Lombok - compileOnly 'org.projectlombok:lombok:1.18.36' - annotationProcessor 'org.projectlombok:lombok:1.18.36' + compileOnly 'org.projectlombok:lombok:_' + annotationProcessor 'org.projectlombok:lombok:_' - testCompileOnly 'org.projectlombok:lombok:1.18.36' - testAnnotationProcessor 'org.projectlombok:lombok:1.18.36' + testCompileOnly 'org.projectlombok:lombok:_' + testAnnotationProcessor 'org.projectlombok:lombok:_' } flyway { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index a4b76b9..9bbc975 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e18bc25..37f853b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f5feea6..faf9300 100755 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. diff --git a/settings.gradle b/settings.gradle index 3c8573b..bfab6d5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,4 @@ -rootProject.name = 'misael' +plugins { + id 'de.fayard.refreshVersions' version '0.60.5' +} +rootProject.name = 'misael' \ No newline at end of file diff --git a/src/main/java/com/bernard/misael/CustomUserDetailsService.java b/src/main/java/com/bernard/misael/CustomUserDetailsService.java index e818674..b481b6e 100644 --- a/src/main/java/com/bernard/misael/CustomUserDetailsService.java +++ b/src/main/java/com/bernard/misael/CustomUserDetailsService.java @@ -1,7 +1,9 @@ package com.bernard.misael; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Stream; + import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; @@ -12,13 +14,6 @@ import com.bernard.misael.model.Role; import com.bernard.misael.model.User; import com.bernard.misael.repository.UserRepository; -import java.util.Collection; -import java.util.EnumSet; -import java.util.Set; -import java.util.function.Function; -import java.util.stream.Collectors; -import java.util.stream.Stream; - @Service public class CustomUserDetailsService implements UserDetailsService { diff --git a/src/main/java/com/bernard/misael/model/Answer.java b/src/main/java/com/bernard/misael/model/Answer.java index 0fce67d..4649bd4 100644 --- a/src/main/java/com/bernard/misael/model/Answer.java +++ b/src/main/java/com/bernard/misael/model/Answer.java @@ -6,13 +6,11 @@ import com.fasterxml.jackson.databind.node.JsonNodeFactory; import jakarta.persistence.Column; import jakarta.persistence.Convert; -import jakarta.persistence.Converter; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; -import jakarta.persistence.Lob; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import lombok.AllArgsConstructor; diff --git a/src/main/java/com/bernard/misael/model/QuizzForm.java b/src/main/java/com/bernard/misael/model/QuizzForm.java index 40ed077..630bd82 100644 --- a/src/main/java/com/bernard/misael/model/QuizzForm.java +++ b/src/main/java/com/bernard/misael/model/QuizzForm.java @@ -1,7 +1,5 @@ package com.bernard.misael.model; -import org.hibernate.annotations.GeneratedColumn; - import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; diff --git a/src/main/java/com/bernard/misael/model/Role.java b/src/main/java/com/bernard/misael/model/Role.java index cca024d..978df56 100644 --- a/src/main/java/com/bernard/misael/model/Role.java +++ b/src/main/java/com/bernard/misael/model/Role.java @@ -1,18 +1,29 @@ package com.bernard.misael.model; -import jakarta.persistence.*; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.Collection; import java.util.EnumSet; import java.util.List; import java.util.Set; import org.springframework.security.core.GrantedAuthority; +import jakarta.persistence.CollectionTable; +import jakarta.persistence.Column; +import jakarta.persistence.ElementCollection; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + @Getter @Setter @NoArgsConstructor diff --git a/src/main/java/com/bernard/misael/model/User.java b/src/main/java/com/bernard/misael/model/User.java index 4cff658..d71e59d 100644 --- a/src/main/java/com/bernard/misael/model/User.java +++ b/src/main/java/com/bernard/misael/model/User.java @@ -4,9 +4,18 @@ import java.util.ArrayList; import java.util.List; import java.util.Set; -import org.hibernate.cache.spi.support.AbstractReadWriteAccess.Item; - -import jakarta.persistence.*; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/src/main/java/com/bernard/misael/service/UserServiceImpl.java b/src/main/java/com/bernard/misael/service/UserServiceImpl.java index cd4703c..b137e0f 100644 --- a/src/main/java/com/bernard/misael/service/UserServiceImpl.java +++ b/src/main/java/com/bernard/misael/service/UserServiceImpl.java @@ -1,29 +1,23 @@ package com.bernard.misael.service; +import java.util.List; +import java.util.stream.Collectors; + import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; -import com.bernard.misael.model.Role; import com.bernard.misael.model.User; -import com.bernard.misael.repository.RoleRepository; import com.bernard.misael.repository.UserRepository; import com.bernard.misael.service.dto.UserDto; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - @Service public class UserServiceImpl implements UserService { private UserRepository userRepository; - private RoleRepository roleRepository; private PasswordEncoder passwordEncoder; public UserServiceImpl(UserRepository userRepository, - RoleRepository roleRepository, PasswordEncoder passwordEncoder) { this.userRepository = userRepository; - this.roleRepository = roleRepository; this.passwordEncoder = passwordEncoder; } diff --git a/src/main/java/com/bernard/misael/service/dto/UserDto.java b/src/main/java/com/bernard/misael/service/dto/UserDto.java index 899aca9..46df941 100644 --- a/src/main/java/com/bernard/misael/service/dto/UserDto.java +++ b/src/main/java/com/bernard/misael/service/dto/UserDto.java @@ -1,6 +1,5 @@ package com.bernard.misael.service.dto; -import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotEmpty; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/bernard/misael/web/QuestionsController.java b/src/main/java/com/bernard/misael/web/QuestionsController.java index c730c95..4510fc9 100644 --- a/src/main/java/com/bernard/misael/web/QuestionsController.java +++ b/src/main/java/com/bernard/misael/web/QuestionsController.java @@ -45,8 +45,6 @@ public class QuestionsController { User u = null; if (p!=null) u = ur.findByName(p.getName()); - - System.out.println("Loaded as user "+u); if(u!=null) { model.addAttribute("quizz",u.getMyQuizzs()); } @@ -63,14 +61,10 @@ public class QuestionsController { @GetMapping("/form/{q}") public String formpage(@PathVariable("q") long quizzId, Principal p, Model m) { - User u = null; - if (p!=null) - u = ur.findByName(p.getName()); - else + if (p==null) return "redirect:/login?restricted"; - //XXX test that user can answer quizz m.addAttribute("formid", quizzId); - Quizz q = qrepo.getById(quizzId); + Quizz q = qrepo.getReferenceById(quizzId); m.addAttribute("quizzLength",q.getQuestionCount()); return "form"; diff --git a/versions.properties b/versions.properties new file mode 100644 index 0000000..911e907 --- /dev/null +++ b/versions.properties @@ -0,0 +1,98 @@ +#### Dependencies and Plugin versions with their available updates. +#### Generated by `./gradlew refreshVersions` version 0.60.5 +#### +#### Don't manually edit or split the comments that start with four hashtags (####), +#### they will be overwritten by refreshVersions. +#### +#### suppress inspection "SpellCheckingInspection" for whole file +#### suppress inspection "UnusedProperty" for whole file + +version.com.fasterxml.jackson.core..jackson-databind=2.18.3 + +version.org.junit.platform..junit-platform-launcher=1.12.0 + +version.org.springframework..spring-jdbc=6.2.3 +## # available=7.0.0-M1 +## # available=7.0.0-M2 + +version.org.springframework.boot..spring-boot-docker-compose=3.4.3 + +version.org.webjars..jquery=1.9.1 +## # available=1.10.1 +## # available=1.10.2 +## # available=1.10.2-1 +## # available=1.11.0 +## # available=1.11.0-1 +## # available=1.11.1 +## # available=1.11.2 +## # available=1.12.0 +## # available=1.12.1 +## # available=1.12.2 +## # available=1.12.3 +## # available=1.12.4 +## # available=2.0.0 +## # available=2.0.2 +## # available=2.0.3 +## # available=2.0.3-1 +## # available=2.1.0 +## # available=2.1.0-1 +## # available=2.1.0-2 +## # available=2.1.0-3 +## # available=2.1.1 +## # available=2.1.3 +## # available=2.2.0 +## # available=2.2.1 +## # available=2.2.2 +## # available=2.2.3 +## # available=2.2.4 +## # available=3.0.0-alpha1 +## # available=3.0.0-rc1 +## # available=3.0.0 +## # available=3.1.0 +## # available=3.1.1 +## # available=3.1.1-1 +## # available=3.2.0 +## # available=3.2.1 +## # available=3.3.0 +## # available=3.3.1 +## # available=3.3.1-1 +## # available=3.3.1-2 +## # available=3.4.0 +## # available=3.4.1 +## # available=3.5.0 +## # available=3.5.1 +## # available=3.6.0 +## # available=3.6.1 +## # available=3.6.2 +## # available=3.6.3 +## # available=3.6.4 +## # available=3.7.0 +## # available=3.7.1 + +version.org.thymeleaf.extras..thymeleaf-extras-springsecurity6=3.1.3.RELEASE + +version.org.projectlombok..lombok=1.18.36 + +version.org.postgresql..postgresql=42.7.5 + +version.org.flywaydb..flyway-database-postgresql=11.3.2 +## # available=11.3.3 +## # available=11.3.4 + +version.org.flywaydb..flyway-core=11.3.2 +## # available=11.3.3 +## # available=11.3.4 + +version.jakarta.validation..jakarta.validation-api=3.1.1 + +version.com.fasterxml.jackson.datatype..jackson-datatype-hibernate5=2.18.2 +## # available=2.18.3 + +plugin.org.springframework.boot=3.4.2 +## # available=3.4.3 + +plugin.org.flywaydb.flyway=11.3.2 +## # available=11.3.3 +## # available=11.3.4 + +plugin.io.spring.dependency-management=1.1.7