pub struct UserContext {
pub user_id: String,
pub username: String,
pub roles: Vec<String>,
pub permissions: Vec<String>,
pub auth_provider: String,
pub authenticated_at: DateTime<Utc>,
pub expires_at: Option<DateTime<Utc>>,
pub additional_data: HashMap<String, Value>,
}Expand description
User context extracted from authentication
Fields§
§user_id: StringUser ID
username: StringUsername/email
roles: Vec<String>User roles
permissions: Vec<String>User permissions
auth_provider: StringAuthentication provider used
authenticated_at: DateTime<Utc>Authentication timestamp
expires_at: Option<DateTime<Utc>>Token expiration (if applicable)
additional_data: HashMap<String, Value>Additional user data
Implementations§
Source§impl UserContext
impl UserContext
Sourcepub fn new(user_id: String, username: String, auth_provider: String) -> Self
pub fn new(user_id: String, username: String, auth_provider: String) -> Self
Create a new user context
Sourcepub fn has_permission(&self, permission: &str) -> bool
pub fn has_permission(&self, permission: &str) -> bool
Check if user has a specific permission
Sourcepub fn has_any_role(&self, roles: &[String]) -> bool
pub fn has_any_role(&self, roles: &[String]) -> bool
Check if user has any of the specified roles
Sourcepub fn has_all_roles(&self, roles: &[String]) -> bool
pub fn has_all_roles(&self, roles: &[String]) -> bool
Check if user has all of the specified roles
Sourcepub fn is_expired(&self) -> bool
pub fn is_expired(&self) -> bool
Check if authentication has expired
Trait Implementations§
Source§impl Clone for UserContext
impl Clone for UserContext
Source§fn clone(&self) -> UserContext
fn clone(&self) -> UserContext
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for UserContext
impl Debug for UserContext
Source§impl<'de> Deserialize<'de> for UserContext
impl<'de> Deserialize<'de> for UserContext
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for UserContext
impl RefUnwindSafe for UserContext
impl Send for UserContext
impl Sync for UserContext
impl Unpin for UserContext
impl UnwindSafe for UserContext
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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