]> Untitled Git - lemmy.git/blobdiff - crates/api_crud/src/user/create.rs
Revert "feat: re-added captcha checks (#3249)" (#3288)
[lemmy.git] / crates / api_crud / src / user / create.rs
index d0aa05acc46132cc932f1fcdaa849449bfb6a724..f5a26f75634eee2b8f2270c92da1a929738b056b 100644 (file)
@@ -83,6 +83,12 @@ impl PerformCrud for Register {
       &context.settings().get_protocol_and_hostname(),
     )?;
 
+    if let Some(email) = &data.email {
+      if LocalUser::is_email_taken(context.pool(), email).await? {
+        return Err(LemmyError::from_message("email_already_exists"));
+      }
+    }
+
     // We have to create both a person, and local_user
 
     // Register the new person
@@ -116,23 +122,7 @@ impl PerformCrud for Register {
       .accepted_application(accepted_application)
       .build();
 
-    let inserted_local_user = match LocalUser::create(context.pool(), &local_user_form).await {
-      Ok(lu) => lu,
-      Err(e) => {
-        let err_type = if e.to_string()
-          == "duplicate key value violates unique constraint \"local_user_email_key\""
-        {
-          "email_already_exists"
-        } else {
-          "user_already_exists"
-        };
-
-        // If the local user creation errored, then delete that person
-        Person::delete(context.pool(), inserted_person.id).await?;
-
-        return Err(LemmyError::from_error_message(e, err_type));
-      }
-    };
+    let inserted_local_user = LocalUser::create(context.pool(), &local_user_form).await?;
 
     if local_site.site_setup && require_registration_application {
       // Create the registration application