Check that the email isn't used during the registration process

This commit is contained in:
Quentin Gliech
2025-01-14 16:52:53 +01:00
parent 588c1bdcd4
commit 3eb1bd18bd

View File

@@ -25,7 +25,7 @@ use mas_policy::Policy;
use mas_router::UrlBuilder;
use mas_storage::{
queue::{QueueJobRepositoryExt as _, SendEmailAuthenticationCodeJob},
user::{UserEmailRepository, UserRepository},
user::{UserEmailFilter, UserEmailRepository, UserRepository},
BoxClock, BoxRepository, BoxRng, RepositoryAccess,
};
use mas_templates::{
@@ -194,6 +194,13 @@ pub(crate) async fn post(
state.add_error_on_field(RegisterFormField::Email, FieldError::Required);
} else if Address::from_str(&form.email).is_err() {
state.add_error_on_field(RegisterFormField::Email, FieldError::Invalid);
} else if repo
.user_email()
.count(UserEmailFilter::new().for_email(&form.email))
.await?
> 0
{
state.add_error_on_field(RegisterFormField::Email, FieldError::Exists);
}
if form.password.is_empty() {