pub struct AuthContext {
pub identity: Identity,
pub roles: HashSet<String>,
pub permissions: HashSet<String>,
pub authenticated_at: Instant,
pub expires_at: Option<Instant>,
pub auth_method: String,
}Expand description
Authentication context for an authenticated request.
Fields§
§identity: IdentityThe authenticated identity.
roles: HashSet<String>Roles assigned to this identity.
permissions: HashSet<String>Permissions granted.
authenticated_at: InstantWhen authentication occurred.
expires_at: Option<Instant>When the authentication expires.
auth_method: StringThe authentication method used.
Implementations§
Source§impl AuthContext
impl AuthContext
Sourcepub fn new(identity: Identity, auth_method: impl Into<String>) -> Self
pub fn new(identity: Identity, auth_method: impl Into<String>) -> Self
Create a new auth context.
Sourcepub fn with_roles<I, S>(self, roles: I) -> Self
pub fn with_roles<I, S>(self, roles: I) -> Self
Add roles.
Sourcepub fn with_permission(self, permission: impl Into<String>) -> Self
pub fn with_permission(self, permission: impl Into<String>) -> Self
Add a permission.
Sourcepub fn with_permissions<I, S>(self, permissions: I) -> Self
pub fn with_permissions<I, S>(self, permissions: I) -> Self
Add permissions.
Sourcepub fn with_expiry(self, duration: Duration) -> Self
pub fn with_expiry(self, duration: Duration) -> Self
Set expiration.
Sourcepub fn is_expired(&self) -> bool
pub fn is_expired(&self) -> bool
Check if the context has expired.
Sourcepub fn has_any_role(&self, roles: &[&str]) -> bool
pub fn has_any_role(&self, roles: &[&str]) -> bool
Check if the identity has any of the specified roles.
Sourcepub fn has_all_roles(&self, roles: &[&str]) -> bool
pub fn has_all_roles(&self, roles: &[&str]) -> bool
Check if the identity has all of the specified roles.
Sourcepub fn has_permission(&self, permission: &str) -> bool
pub fn has_permission(&self, permission: &str) -> bool
Check if the identity has a permission.
Sourcepub fn has_any_permission(&self, permissions: &[&str]) -> bool
pub fn has_any_permission(&self, permissions: &[&str]) -> bool
Check if the identity has any of the specified permissions.
Trait Implementations§
Source§impl Clone for AuthContext
impl Clone for AuthContext
Source§fn clone(&self) -> AuthContext
fn clone(&self) -> AuthContext
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 moreAuto Trait Implementations§
impl Freeze for AuthContext
impl RefUnwindSafe for AuthContext
impl Send for AuthContext
impl Sync for AuthContext
impl Unpin for AuthContext
impl UnwindSafe for AuthContext
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.