Add email re-validation handling with UI feedback and backend validation to prevent duplicate email verification attempts
This commit is contained in:
@@ -33,6 +33,14 @@ public class MailController implements MailApi {
|
||||
@RateLimit(limit = 5, timeValue = 1, timeUnit = TimeUnit.HOURS, key = "mailSubmit")
|
||||
public ResponseEntity<MailResponseDto> 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())
|
||||
|
||||
Reference in New Issue
Block a user