pub struct UserResponse {
pub id: Uuid,
pub email: String,
pub first_name: String,
pub last_name: String,
pub actions: Vec<String>,
pub authority: AuthorityStatus,
pub has_pending_email_change: bool,
}Fields§
§id: Uuid§email: String§first_name: String§last_name: String§actions: Vec<String>Expanded effective action list: wildcards expanded against the
catalog, dynamic actions included per live registries. Token-scope
intersection applies once scoped credentials exist (M3) — pre-M3
session credentials carry no scope. Empty when authority is
unavailable.
Deliberately Vec<String>, not Vec<Action>: Action’s
deserializer rejects any resource/verb the COMPILED catalog lacks,
so a typed field would make a newer controller’s response
unparseable to an older client (CLI could not even log in) the
moment the catalog grows. The action set is open — clients treat
entries as opaque strings.
Whether the access engine resolved this principal’s authority for
this response. unavailable ⇒ actions is empty and the client
should degrade, not log out.
has_pending_email_change: boolTrait Implementations§
Source§impl Clone for UserResponse
impl Clone for UserResponse
Source§fn clone(&self) -> UserResponse
fn clone(&self) -> UserResponse
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for UserResponse
impl Debug for UserResponse
Source§impl<'de> Deserialize<'de> for UserResponse
impl<'de> Deserialize<'de> for UserResponse
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>,
Auto Trait Implementations§
impl Freeze for UserResponse
impl RefUnwindSafe for UserResponse
impl Send for UserResponse
impl Sync for UserResponse
impl Unpin for UserResponse
impl UnsafeUnpin for UserResponse
impl UnwindSafe for UserResponse
Blanket Implementations§
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
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> 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