From 2ef855bec2d1382267514951017a987594245557 Mon Sep 17 00:00:00 2001 From: Jared Snider Date: Mon, 3 Nov 2025 18:55:21 -0500 Subject: [PATCH 1/3] PM-23835 - Stub out auth identity client --- crates/bitwarden-auth/src/auth_client.rs | 6 ++++ crates/bitwarden-auth/src/identity/client.rs | 37 ++++++++++++++++++++ crates/bitwarden-auth/src/identity/mod.rs | 5 +++ crates/bitwarden-auth/src/lib.rs | 1 + 4 files changed, 49 insertions(+) create mode 100644 crates/bitwarden-auth/src/identity/client.rs create mode 100644 crates/bitwarden-auth/src/identity/mod.rs diff --git a/crates/bitwarden-auth/src/auth_client.rs b/crates/bitwarden-auth/src/auth_client.rs index aaf8fe0cc..9e5245f2a 100644 --- a/crates/bitwarden-auth/src/auth_client.rs +++ b/crates/bitwarden-auth/src/auth_client.rs @@ -2,6 +2,7 @@ use bitwarden_core::Client; #[cfg(feature = "wasm")] use wasm_bindgen::prelude::*; +use crate::identity::IdentityClient; use crate::send_access::SendAccessClient; /// Subclient containing auth functionality. @@ -23,6 +24,11 @@ impl AuthClient { #[cfg_attr(feature = "wasm", wasm_bindgen)] impl AuthClient { + /// Client for identity functionality + pub fn identity(&self) -> IdentityClient { + IdentityClient::new(self.client.clone()) + } + /// Client for send access functionality pub fn send_access(&self) -> SendAccessClient { SendAccessClient::new(self.client.clone()) diff --git a/crates/bitwarden-auth/src/identity/client.rs b/crates/bitwarden-auth/src/identity/client.rs new file mode 100644 index 000000000..6855be9c2 --- /dev/null +++ b/crates/bitwarden-auth/src/identity/client.rs @@ -0,0 +1,37 @@ +use bitwarden_core::Client; +#[cfg(feature = "wasm")] +use wasm_bindgen::prelude::*; + +/// The IdentityClient is used to obtain identity / access tokens from the Bitwarden Identity API. +#[derive(Clone)] +#[cfg_attr(feature = "wasm", wasm_bindgen)] +pub struct IdentityClient { + pub(crate) client: Client, +} + +impl IdentityClient { + /// Create a new IdentityClient with the given Client. + pub(crate) fn new(client: Client) -> Self { + Self { client } + } +} + +#[cfg_attr(feature = "wasm", wasm_bindgen)] +impl IdentityClient { + // TODO: Add methods to interact with the Identity API. +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_identity_client_creation() { + let client: Client = Client::new(None); + let identity_client = IdentityClient::new(client); + + // Verify the identity client was created successfully + // The client field is present and accessible + let _ = identity_client.client; + } +} diff --git a/crates/bitwarden-auth/src/identity/mod.rs b/crates/bitwarden-auth/src/identity/mod.rs new file mode 100644 index 000000000..e83fb83e5 --- /dev/null +++ b/crates/bitwarden-auth/src/identity/mod.rs @@ -0,0 +1,5 @@ +//! Identity client module +//! The IdentityClient is used to obtain identity / access tokens from the Bitwarden Identity API. +mod client; + +pub use client::IdentityClient; diff --git a/crates/bitwarden-auth/src/lib.rs b/crates/bitwarden-auth/src/lib.rs index 380f97d13..b60d9d272 100644 --- a/crates/bitwarden-auth/src/lib.rs +++ b/crates/bitwarden-auth/src/lib.rs @@ -2,6 +2,7 @@ mod auth_client; +pub mod identity; pub mod send_access; pub(crate) mod api; // keep internal to crate From a2ff394a722ffc1ffbd44382ce889716050add15 Mon Sep 17 00:00:00 2001 From: Jared Snider Date: Tue, 4 Nov 2025 10:38:21 -0500 Subject: [PATCH 2/3] PM-23835 - Lint dead code allow --- crates/bitwarden-auth/src/identity/client.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/bitwarden-auth/src/identity/client.rs b/crates/bitwarden-auth/src/identity/client.rs index 6855be9c2..b2ae75e95 100644 --- a/crates/bitwarden-auth/src/identity/client.rs +++ b/crates/bitwarden-auth/src/identity/client.rs @@ -6,6 +6,7 @@ use wasm_bindgen::prelude::*; #[derive(Clone)] #[cfg_attr(feature = "wasm", wasm_bindgen)] pub struct IdentityClient { + #[allow(dead_code)] // TODO: Remove when methods using client are implemented pub(crate) client: Client, } From 96c0c12a24e9ef4b49f9a503e20af9d43750b6ec Mon Sep 17 00:00:00 2001 From: Jared Snider Date: Tue, 4 Nov 2025 10:41:53 -0500 Subject: [PATCH 3/3] PM-23835 - lint --- crates/bitwarden-auth/src/auth_client.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/crates/bitwarden-auth/src/auth_client.rs b/crates/bitwarden-auth/src/auth_client.rs index 9e5245f2a..ffc4964f3 100644 --- a/crates/bitwarden-auth/src/auth_client.rs +++ b/crates/bitwarden-auth/src/auth_client.rs @@ -2,8 +2,7 @@ use bitwarden_core::Client; #[cfg(feature = "wasm")] use wasm_bindgen::prelude::*; -use crate::identity::IdentityClient; -use crate::send_access::SendAccessClient; +use crate::{identity::IdentityClient, send_access::SendAccessClient}; /// Subclient containing auth functionality. #[derive(Clone)]