diff --git a/src/api/identity.rs b/src/api/identity.rs index 9aba23d2..6a6e52fc 100644 --- a/src/api/identity.rs +++ b/src/api/identity.rs @@ -718,7 +718,10 @@ async fn register_verification_email( ) -> ApiResult { let data = data.into_inner(); - if !CONFIG.is_signup_allowed(&data.email) { + // the registration can only continue if signup is allowed or there exists an invitation + if !(CONFIG.is_signup_allowed(&data.email) + || (!CONFIG.mail_enabled() && Invitation::find_by_mail(&data.email, &mut conn).await.is_some())) + { err!("Registration not allowed or user already exists") }