Page MenuHomePhabricator

D13631.diff
No OneTemporary

D13631.diff

diff --git a/keyserver/addons/rust-node-addon/rust-binding-types.js b/keyserver/addons/rust-node-addon/rust-binding-types.js
--- a/keyserver/addons/rust-node-addon/rust-binding-types.js
+++ b/keyserver/addons/rust-node-addon/rust-binding-types.js
@@ -83,6 +83,12 @@
authAccessToken: string,
userIds: $ReadOnlyArray<string>,
) => Promise<UserIdentitiesResponse>,
+ +privilegedDeleteUsers: (
+ authUserId: string,
+ authDeviceId: string,
+ authAccessToken: string,
+ userIds: $ReadOnlyArray<string>,
+ ) => Promise<void>,
};
export type { RustNativeBindingAPI };
diff --git a/keyserver/addons/rust-node-addon/src/identity_client/mod.rs b/keyserver/addons/rust-node-addon/src/identity_client/mod.rs
--- a/keyserver/addons/rust-node-addon/src/identity_client/mod.rs
+++ b/keyserver/addons/rust-node-addon/src/identity_client/mod.rs
@@ -6,6 +6,7 @@
pub mod login;
pub mod nonce;
pub mod prekey;
+mod privileged_delete_users;
pub mod register_user;
pub mod remove_reserved_usernames;
pub mod upload_one_time_keys;
@@ -20,7 +21,7 @@
use generated::CODE_VERSION;
use grpc_clients::identity::authenticated::ChainedInterceptedAuthClient;
use grpc_clients::identity::protos::authenticated::{
- InboundKeyInfo, UploadOneTimeKeysRequest,
+ InboundKeyInfo, PrivilegedDeleteUsersRequest, UploadOneTimeKeysRequest,
};
use grpc_clients::identity::protos::unauthenticated as client_proto;
use grpc_clients::identity::shared::CodeVersionLayer;
diff --git a/keyserver/addons/rust-node-addon/src/identity_client/privileged_delete_users.rs b/keyserver/addons/rust-node-addon/src/identity_client/privileged_delete_users.rs
new file mode 100644
--- /dev/null
+++ b/keyserver/addons/rust-node-addon/src/identity_client/privileged_delete_users.rs
@@ -0,0 +1,27 @@
+use super::*;
+
+#[napi]
+#[instrument(skip_all)]
+pub async fn privileged_delete_users(
+ auth_user_id: String,
+ auth_device_id: String,
+ auth_access_token: String,
+ user_ids: Vec<String>,
+) -> Result<()> {
+ let mut identity_client = get_authenticated_identity_client(
+ auth_user_id,
+ auth_device_id,
+ auth_access_token,
+ )
+ .await?;
+
+ let privileged_delete_users_request =
+ PrivilegedDeleteUsersRequest { user_ids };
+
+ identity_client
+ .privileged_delete_users(privileged_delete_users_request)
+ .await
+ .map_err(handle_grpc_error)?;
+
+ Ok(())
+}

File Metadata

Mime Type
text/plain
Expires
Wed, Oct 9, 2:08 AM (15 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2267412
Default Alt Text
D13631.diff (2 KB)

Event Timeline