diff --git a/backend/src/main/java/com/alttd/altitudeweb/controllers/forms/MailController.java b/backend/src/main/java/com/alttd/altitudeweb/controllers/forms/MailController.java index 847c050..3bbe45f 100644 --- a/backend/src/main/java/com/alttd/altitudeweb/controllers/forms/MailController.java +++ b/backend/src/main/java/com/alttd/altitudeweb/controllers/forms/MailController.java @@ -33,6 +33,14 @@ public class MailController implements MailApi { @RateLimit(limit = 5, timeValue = 1, timeUnit = TimeUnit.HOURS, key = "mailSubmit") public ResponseEntity submitEmailForVerification(SubmitEmailDto submitEmailDto) { UUID uuid = AuthenticatedUuid.getAuthenticatedUserUuid(); + boolean emailAlreadyVerified = mailVerificationService.listAll(uuid).stream() + .filter(EmailVerification::verified) + .map(EmailVerification::email) + .anyMatch(mail -> mail.equalsIgnoreCase(submitEmailDto.getEmail())); + if (emailAlreadyVerified) { + throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Email already verified for user"); + } + EmailVerification saved = mailVerificationService.submitEmail(uuid, submitEmailDto.getEmail()); MailResponseDto response = new MailResponseDto() .email(saved.email()) diff --git a/frontend/src/app/pages/forms/appeal/appeal.component.html b/frontend/src/app/pages/forms/appeal/appeal.component.html index e1a2181..5f85bf7 100644 --- a/frontend/src/app/pages/forms/appeal/appeal.component.html +++ b/frontend/src/app/pages/forms/appeal/appeal.component.html @@ -93,6 +93,14 @@ } + @if (emailIsValid()) { +
+ + check + Your have already validated your email, and can continue to the next page! + +
+ }