Struct InviteLinkClient
pub struct InviteLinkClient {
pub(crate) key_store: KeyStore<KeySlotIds>,
pub(crate) api_configurations: Arc<ApiConfigurations>,
}Expand description
Client for organization invite link cryptographic and network operations.
Fields§
§key_store: KeyStore<KeySlotIds>§api_configurations: Arc<ApiConfigurations>Implementations§
§impl InviteLinkClient
impl InviteLinkClient
pub async fn create_invite_link(
&self,
organization_id: OrganizationId,
allowed_domains: Vec<String>,
supports_confirmation: bool,
) -> Result<OrganizationInviteLink, InviteLinkError>
pub async fn create_invite_link( &self, organization_id: OrganizationId, allowed_domains: Vec<String>, supports_confirmation: bool, ) -> Result<OrganizationInviteLink, InviteLinkError>
Creates a new organization invite and posts it to the server, returning the full
[OrganizationInviteLink] persisted by the server.
§Security
Only the sealed invite is posted to the server; the invite secret is never sent. Use
InviteLinkClient::get_invite_secret to recover the secret needed to reconstruct the
invite link.
pub async fn refresh_invite_link(
&self,
organization_id: OrganizationId,
supports_confirmation: bool,
) -> Result<OrganizationInviteLink, InviteLinkError>
pub async fn refresh_invite_link( &self, organization_id: OrganizationId, supports_confirmation: bool, ) -> Result<OrganizationInviteLink, InviteLinkError>
Refresh an existing invite link. This generates a new code and secret.
pub async fn set_invite_confirmation(
&self,
organization_id: OrganizationId,
invite: Invite,
supports_confirmation: bool,
) -> Result<OrganizationInviteLink, InviteLinkError>
pub async fn set_invite_confirmation( &self, organization_id: OrganizationId, invite: Invite, supports_confirmation: bool, ) -> Result<OrganizationInviteLink, InviteLinkError>
Updates whether an existing invite link supports confirmation, re-sealing the given invite accordingly and persisting it to the server.
Enabling confirmation re-seals the organization key under the invite’s existing invite key;
disabling it strips that envelope. Either way the invite key, code, and secret are left
untouched, so links already handed out stay valid. Use
InviteLinkClient::refresh_invite_link instead when the code and secret must be rotated.
§Security
Only the re-sealed invite is posted to the server; the invite secret is never sent.
pub fn get_invite_secret(
&self,
organization_id: OrganizationId,
invite: Invite,
) -> Result<InviteSecret, InviteLinkError>
pub fn get_invite_secret( &self, organization_id: OrganizationId, invite: Invite, ) -> Result<InviteSecret, InviteLinkError>
Using the organization key, recovers the [InviteSecret] from the invite carried in the
given [OrganizationInviteLink] so an admin can reconstruct the invite link.
pub async fn accept_and_optionally_confirm(
&self,
organization_id: OrganizationId,
code: String,
invite_secret: InviteSecret,
default_collection_name: String,
enroll_into_account_recovery: bool,
) -> Result<(), InviteLinkError>
pub async fn accept_and_optionally_confirm( &self, organization_id: OrganizationId, code: String, invite_secret: InviteSecret, default_collection_name: String, enroll_into_account_recovery: bool, ) -> Result<(), InviteLinkError>
Accepts an organization invite for the current user, optionally enrolling into account
recovery (when enroll_into_account_recovery is set) and — when the invite supports
confirmation — self-confirming.
Trait Implementations§
§impl FromClient for InviteLinkClient
impl FromClient for InviteLinkClient
§fn from_client(client: &Client) -> InviteLinkClient
fn from_client(client: &Client) -> InviteLinkClient
Client] reference.§impl FromWasmAbi for InviteLinkClient
impl FromWasmAbi for InviteLinkClient
§impl IntoWasmAbi for InviteLinkClient
impl IntoWasmAbi for InviteLinkClient
§impl LongRefFromWasmAbi for InviteLinkClient
impl LongRefFromWasmAbi for InviteLinkClient
§type Anchor = RcRef<InviteLinkClient>
type Anchor = RcRef<InviteLinkClient>
RefFromWasmAbi::Anchor§unsafe fn long_ref_from_abi(
js: <InviteLinkClient as LongRefFromWasmAbi>::Abi,
) -> <InviteLinkClient as LongRefFromWasmAbi>::Anchor
unsafe fn long_ref_from_abi( js: <InviteLinkClient as LongRefFromWasmAbi>::Abi, ) -> <InviteLinkClient as LongRefFromWasmAbi>::Anchor
RefFromWasmAbi::ref_from_abi§impl OptionFromWasmAbi for InviteLinkClient
impl OptionFromWasmAbi for InviteLinkClient
§fn is_none(abi: &<InviteLinkClient as FromWasmAbi>::Abi) -> bool
fn is_none(abi: &<InviteLinkClient as FromWasmAbi>::Abi) -> bool
None, and otherwise it will be passed to
FromWasmAbi.§impl OptionIntoWasmAbi for InviteLinkClient
impl OptionIntoWasmAbi for InviteLinkClient
§fn none() -> <InviteLinkClient as IntoWasmAbi>::Abi
fn none() -> <InviteLinkClient as IntoWasmAbi>::Abi
None branch of this option. Read more§impl RefFromWasmAbi for InviteLinkClient
impl RefFromWasmAbi for InviteLinkClient
§type Anchor = RcRef<InviteLinkClient>
type Anchor = RcRef<InviteLinkClient>
Self for the duration of the
invocation of the function that has an &Self parameter. This is
required to ensure that the lifetimes don’t persist beyond one function
call, and so that they remain anonymous.§unsafe fn ref_from_abi(
js: <InviteLinkClient as RefFromWasmAbi>::Abi,
) -> <InviteLinkClient as RefFromWasmAbi>::Anchor
unsafe fn ref_from_abi( js: <InviteLinkClient as RefFromWasmAbi>::Abi, ) -> <InviteLinkClient as RefFromWasmAbi>::Anchor
§impl RefMutFromWasmAbi for InviteLinkClient
impl RefMutFromWasmAbi for InviteLinkClient
§type Anchor = RcRefMut<InviteLinkClient>
type Anchor = RcRefMut<InviteLinkClient>
RefFromWasmAbi::Anchor§unsafe fn ref_mut_from_abi(
js: <InviteLinkClient as RefMutFromWasmAbi>::Abi,
) -> <InviteLinkClient as RefMutFromWasmAbi>::Anchor
unsafe fn ref_mut_from_abi( js: <InviteLinkClient as RefMutFromWasmAbi>::Abi, ) -> <InviteLinkClient as RefMutFromWasmAbi>::Anchor
RefFromWasmAbi::ref_from_abi§impl TryFromJsValue for InviteLinkClient
impl TryFromJsValue for InviteLinkClient
§fn try_from_js_value(value: JsValue) -> Result<InviteLinkClient, JsValue>
fn try_from_js_value(value: JsValue) -> Result<InviteLinkClient, JsValue>
§fn try_from_js_value_ref(value: &JsValue) -> Option<InviteLinkClient>
fn try_from_js_value_ref(value: &JsValue) -> Option<InviteLinkClient>
§impl VectorFromWasmAbi for InviteLinkClient
impl VectorFromWasmAbi for InviteLinkClient
type Abi = <Box<[JsValue]> as FromWasmAbi>::Abi
unsafe fn vector_from_abi( js: <InviteLinkClient as VectorFromWasmAbi>::Abi, ) -> Box<[InviteLinkClient]>
§impl VectorIntoWasmAbi for InviteLinkClient
impl VectorIntoWasmAbi for InviteLinkClient
type Abi = <Box<[JsValue]> as IntoWasmAbi>::Abi
fn vector_into_abi( vector: Box<[InviteLinkClient]>, ) -> <InviteLinkClient as VectorIntoWasmAbi>::Abi
Auto Trait Implementations§
impl !RefUnwindSafe for InviteLinkClient
impl !UnwindSafe for InviteLinkClient
impl Freeze for InviteLinkClient
impl Send for InviteLinkClient
impl Sync for InviteLinkClient
impl Unpin for InviteLinkClient
impl UnsafeUnpin for InviteLinkClient
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> CompatExt for T
impl<T> CompatExt for T
§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
§fn new_handle(value: Arc<T>) -> Handle
fn new_handle(value: Arc<T>) -> Handle
§unsafe fn clone_handle(handle: Handle) -> Handle
unsafe fn clone_handle(handle: Handle) -> Handle
§unsafe fn consume_handle(handle: Handle) -> Arc<T> ⓘ
unsafe fn consume_handle(handle: Handle) -> Arc<T> ⓘ
Arc<> Read more§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
Source§type Abi = <T as IntoWasmAbi>::Abi
type Abi = <T as IntoWasmAbi>::Abi
IntoWasmAbi::AbiSource§fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
IntoWasmAbi::into_abi, except that it may throw and never
return in the case of Err.