pub struct SsoUser {Show 14 fields
pub principal_id: String,
pub account: String,
pub user_name: String,
pub display_name: String,
pub email: String,
pub external_id: String,
pub subject: Option<String>,
pub active: bool,
pub source: SsoSource,
pub created: UnixMillis,
pub last_login: Option<UnixMillis>,
pub sessions: Vec<String>,
pub deleted: bool,
pub rebind: bool,
}Expand description
One person of a company’s directory: an EMPLOYEE of account, keyed
by its principal id. Written in the same compare-and-swap as the employee
it describes, removed with it.
Fields§
§principal_id: StringThe employee.
account: StringThe account it is an employee of.
user_name: StringThe directory’s user name, lowercase (SCIM userName, the mapped
claim or attribute). Unique within the account.
display_name: StringThe person’s name, as the directory says it.
email: StringThe person’s address, as the directory says it (never mailed by gunnar).
external_id: StringThe directory’s own id for the person (SCIM externalId).
subject: Option<String>subject_key of the IdP subject this person logs in as, once bound
(by the first login). None: provisioned, never logged in yet.
active: boolFalse: deactivated — gated, sessions revoked, data kept.
source: SsoSourceWhere the row came from.
created: UnixMillisWhen it was created.
last_login: Option<UnixMillis>When its last SSO login was.
sessions: Vec<String>The web session keys SSO logins enrolled (fingerprints), so a deactivation ends them. Pruned at each login.
deleted: boolRemoved from the directory (SCIM DELETE): still gated, data kept, no longer listed or claimable; its user name is free for a NEW person.
rebind: boolThe account admin opened a rebind (A34-11, an IdP migration): unbound from its old subject, its next sign-in binds it afresh on the claim rules.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for SsoUser
impl<'de> Deserialize<'de> for SsoUser
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for SsoUser
impl StructuralPartialEq for SsoUser
Auto Trait Implementations§
impl Freeze for SsoUser
impl RefUnwindSafe for SsoUser
impl Send for SsoUser
impl Sync for SsoUser
impl Unpin for SsoUser
impl UnsafeUnpin for SsoUser
impl UnwindSafe for SsoUser
Blanket Implementations§
impl<T> Allocation for T
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.