Struct AuthContext
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§
§impl AuthContext
impl AuthContext
pub fn new(identity: Identity, auth_method: impl Into<String>) -> AuthContext
pub fn new(identity: Identity, auth_method: impl Into<String>) -> AuthContext
Create a new auth context.
pub fn with_role(self, role: impl Into<String>) -> AuthContext
pub fn with_role(self, role: impl Into<String>) -> AuthContext
Add a role.
pub fn with_roles<I, S>(self, roles: I) -> AuthContext
pub fn with_roles<I, S>(self, roles: I) -> AuthContext
Add roles.
pub fn with_permission(self, permission: impl Into<String>) -> AuthContext
pub fn with_permission(self, permission: impl Into<String>) -> AuthContext
Add a permission.
pub fn with_permissions<I, S>(self, permissions: I) -> AuthContext
pub fn with_permissions<I, S>(self, permissions: I) -> AuthContext
Add permissions.
pub fn with_expiry(self, duration: Duration) -> AuthContext
pub fn with_expiry(self, duration: Duration) -> AuthContext
Set expiration.
pub fn is_expired(&self) -> bool
pub fn is_expired(&self) -> bool
Check if the context has expired.
pub 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.
pub 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.
pub fn has_permission(&self, permission: &str) -> bool
pub fn has_permission(&self, permission: &str) -> bool
Check if the identity has a permission.
pub 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§
§impl Clone for AuthContext
impl Clone for AuthContext
§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§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§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,
§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§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.