Page MenuHomePhorge

D11412.1767101392.diff
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

D11412.1767101392.diff

diff --git a/services/identity/src/client_service.rs b/services/identity/src/client_service.rs
--- a/services/identity/src/client_service.rs
+++ b/services/identity/src/client_service.rs
@@ -125,6 +125,10 @@
return Err(tonic::Status::invalid_argument("username reserved"));
}
+ if let Some(fid) = &message.farcaster_id {
+ self.check_farcaster_id_taken(fid).await?;
+ }
+
let registration_state = construct_user_registration_info(
&message,
None,
@@ -539,6 +543,10 @@
));
}
+ if let Some(fid) = &message.farcaster_id {
+ self.check_farcaster_id_taken(fid).await?;
+ }
+
let flattened_device_key_upload =
construct_flattened_device_key_upload(&message)?;
@@ -925,6 +933,24 @@
Ok(())
}
+ async fn check_farcaster_id_taken(
+ &self,
+ farcaster_id: &str,
+ ) -> Result<(), tonic::Status> {
+ let fid_already_registered = !self
+ .client
+ .get_farcaster_users(vec![farcaster_id.to_string()])
+ .await
+ .map_err(handle_db_error)?
+ .is_empty();
+ if fid_already_registered {
+ return Err(tonic::Status::already_exists(
+ "farcaster ID already associated with different user",
+ ));
+ }
+ Ok(())
+ }
+
async fn verify_and_remove_nonce(
&self,
nonce: &str,

File Metadata

Mime Type
text/plain
Expires
Tue, Dec 30, 1:29 PM (8 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5867266
Default Alt Text
D11412.1767101392.diff (1 KB)

Event Timeline