From 9e71cb701239c85a2d23d143ef6ec04500d0efdd Mon Sep 17 00:00:00 2001 From: Hippolyte Blot Date: Wed, 6 May 2026 10:41:46 +0200 Subject: [PATCH 1/4] adding PUT activate --- .../vip/core/models/ActivationForm.java | 24 +++++++++++++++++++ .../core/server/business/SessionBusiness.java | 1 + .../server/controller/UserController.java | 6 +++++ .../vip/core/server/model/Session.java | 1 + 4 files changed, 32 insertions(+) create mode 100644 vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java diff --git a/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java new file mode 100644 index 000000000..cef8296ed --- /dev/null +++ b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java @@ -0,0 +1,24 @@ +package fr.insalyon.creatis.vip.core.models; + +import jakarta.validation.constraints.NotBlank; + +public class ActivationForm { + + @NotBlank + private String code; + + public ActivationForm() { + } + + public ActivationForm(String code) { + this.code = code; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } +} diff --git a/vip-core/src/main/java/fr/insalyon/creatis/vip/core/server/business/SessionBusiness.java b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/server/business/SessionBusiness.java index 5616b4f94..31fddc364 100644 --- a/vip-core/src/main/java/fr/insalyon/creatis/vip/core/server/business/SessionBusiness.java +++ b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/server/business/SessionBusiness.java @@ -62,6 +62,7 @@ public Session getSession(User user) { session.id = user.getSession(); session.email = user.getEmail(); session.userlevel = user.getLevel(); + session.confirmed = user.isConfirmed(); return session; } diff --git a/vip-core/src/main/java/fr/insalyon/creatis/vip/core/server/controller/UserController.java b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/server/controller/UserController.java index 457f9f778..9c61177a6 100644 --- a/vip-core/src/main/java/fr/insalyon/creatis/vip/core/server/controller/UserController.java +++ b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/server/controller/UserController.java @@ -13,6 +13,7 @@ import fr.insalyon.creatis.vip.core.client.DefaultError; import fr.insalyon.creatis.vip.core.client.VipException; +import fr.insalyon.creatis.vip.core.models.ActivationForm; import fr.insalyon.creatis.vip.core.models.SignUpForm; import fr.insalyon.creatis.vip.core.models.User; import fr.insalyon.creatis.vip.core.server.business.AuthenticationBusiness; @@ -77,4 +78,9 @@ public User create(@RequestBody @Valid SignUpForm form) throws VipException { // the returned data may be partial, but enough for the frontend to do it own stuff! return authenticationBusiness.signup(form.user, form.comment, false, false, form.user.getGroups()); } + + @PutMapping(value = "{id}/activate") + public void activate(@PathVariable String id, @RequestBody @Valid ActivationForm form) throws VipException { + authenticationBusiness.activate(id, form.getCode()); + } } diff --git a/vip-core/src/main/java/fr/insalyon/creatis/vip/core/server/model/Session.java b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/server/model/Session.java index 3459a9117..7966de3b4 100644 --- a/vip-core/src/main/java/fr/insalyon/creatis/vip/core/server/model/Session.java +++ b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/server/model/Session.java @@ -12,4 +12,5 @@ public class Session { public String email; public String password; public UserLevel userlevel; + public Boolean confirmed; } From d5092f1136b6e0c91de4b4eeb0b093d8ead4fa12 Mon Sep 17 00:00:00 2001 From: Hippolyte Blot Date: Wed, 6 May 2026 11:30:47 +0200 Subject: [PATCH 2/4] JsonView for ActivationForm --- .../insalyon/creatis/vip/core/models/ActivationForm.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java index cef8296ed..54073a341 100644 --- a/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java +++ b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java @@ -1,16 +1,19 @@ package fr.insalyon.creatis.vip.core.models; import jakarta.validation.constraints.NotBlank; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; public class ActivationForm { - @NotBlank + @JsonProperty("code") private String code; public ActivationForm() { } - public ActivationForm(String code) { + @JsonCreator + public ActivationForm(@JsonProperty("code") String code) { this.code = code; } From a5e5d2d420878b87481242ef67ede40eb4fe60c9 Mon Sep 17 00:00:00 2001 From: Hippolyte Blot Date: Wed, 6 May 2026 13:23:58 +0200 Subject: [PATCH 3/4] Global jsonview for ActivationForm --- .../creatis/vip/core/models/ActivationForm.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java index 54073a341..1954b42aa 100644 --- a/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java +++ b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java @@ -1,19 +1,21 @@ package fr.insalyon.creatis.vip.core.models; -import jakarta.validation.constraints.NotBlank; -import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonView; +import com.google.gwt.user.client.rpc.IsSerializable; +import fr.insalyon.creatis.vip.core.server.inter.DataViews; + import com.fasterxml.jackson.annotation.JsonCreator; -public class ActivationForm { +@JsonView(DataViews.User.class) +public class ActivationForm implements IsSerializable { - @JsonProperty("code") private String code; public ActivationForm() { } @JsonCreator - public ActivationForm(@JsonProperty("code") String code) { + public ActivationForm(String code) { this.code = code; } From 1eb49d141b5ae01371b36da492171f7470fb3d69 Mon Sep 17 00:00:00 2001 From: Hippolyte Blot Date: Wed, 6 May 2026 14:42:15 +0200 Subject: [PATCH 4/4] rm jsoncreator --- .../java/fr/insalyon/creatis/vip/core/models/ActivationForm.java | 1 - 1 file changed, 1 deletion(-) diff --git a/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java index 1954b42aa..5b537d46b 100644 --- a/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java +++ b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java @@ -14,7 +14,6 @@ public class ActivationForm implements IsSerializable { public ActivationForm() { } - @JsonCreator public ActivationForm(String code) { this.code = code; }