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..5b537d46b --- /dev/null +++ b/vip-core/src/main/java/fr/insalyon/creatis/vip/core/models/ActivationForm.java @@ -0,0 +1,28 @@ +package fr.insalyon.creatis.vip.core.models; + +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; + +@JsonView(DataViews.User.class) +public class ActivationForm implements IsSerializable { + + 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 40aaaf900..a2c87c1c7 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 @@ -16,6 +16,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.User; import fr.insalyon.creatis.vip.core.models.UserAndPassword; import fr.insalyon.creatis.vip.core.server.business.AuthenticationBusiness; @@ -97,4 +98,9 @@ public User create(@RequestBody @Valid UserAndPassword form) throws VipException logger.info("Signup completed: email='{}', generatedId='{}'", createdUser.getEmail(), createdUser.getId()); return createdUser; } -} \ No newline at end of file + + @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; }