Page MenuHomePhabricator

D12918.id42900.diff
No OneTemporary

D12918.id42900.diff

diff --git a/services/identity/src/database.rs b/services/identity/src/database.rs
--- a/services/identity/src/database.rs
+++ b/services/identity/src/database.rs
@@ -531,11 +531,19 @@
Ok(())
}
+ /// Deletes all user data from DynamoDB. Returns device IDs
+ /// from user's device list.
#[tracing::instrument(skip_all)]
pub async fn delete_user(
&self,
user_id: String,
- ) -> Result<DeleteItemOutput, Error> {
+ ) -> Result<Vec<String>, Error> {
+ let device_ids = self
+ .get_current_device_list(&user_id)
+ .await?
+ .map(|list| list.device_ids)
+ .unwrap_or_default();
+
// We must delete the one-time keys first because doing so requires device
// IDs from the devices table
debug!(user_id, "Attempting to delete user's one-time keys");
@@ -570,7 +578,9 @@
);
Err(Error::AwsSdk(e.into()))
}
- }
+ }?;
+
+ Ok(device_ids)
}
pub async fn wallet_address_taken(
diff --git a/services/identity/src/grpc_services/authenticated.rs b/services/identity/src/grpc_services/authenticated.rs
--- a/services/identity/src/grpc_services/authenticated.rs
+++ b/services/identity/src/grpc_services/authenticated.rs
@@ -568,11 +568,12 @@
));
}
- self
+ let device_ids = self
.db_client
.delete_user(user_id)
.await
.map_err(handle_db_error)?;
+ spawn_delete_tunnelbroker_data_task(device_ids);
let response = Empty {};
Ok(Response::new(response))
@@ -654,11 +655,12 @@
.finish(&message.opaque_login_upload)
.map_err(protocol_error_to_grpc_status)?;
- self
+ let device_ids = self
.db_client
.delete_user(user_id)
.await
.map_err(handle_db_error)?;
+ spawn_delete_tunnelbroker_data_task(device_ids);
let response = Empty {};
Ok(Response::new(response))

File Metadata

Mime Type
text/plain
Expires
Thu, Sep 19, 8:28 PM (10 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2142328
Default Alt Text
D12918.id42900.diff (1 KB)

Event Timeline