pub struct PermissionChecker { /* private fields */ }Expand description
Main permission checker
Implementations§
Source§impl PermissionChecker
impl PermissionChecker
pub fn new() -> Self
Sourcepub fn load_policy(&mut self, policy: ProfilePolicy)
pub fn load_policy(&mut self, policy: ProfilePolicy)
Load profile policy for tenant (called during bootstrap)
Sourcepub fn load_collection_policy(&mut self, policy: CollectionPolicy)
pub fn load_collection_policy(&mut self, policy: CollectionPolicy)
Load collection policy for resource type + action
Sourcepub fn get_collection_policy(
&self,
resource_type: &str,
action: &str,
) -> Option<&CollectionPolicy>
pub fn get_collection_policy( &self, resource_type: &str, action: &str, ) -> Option<&CollectionPolicy>
Get collection policy for resource type and action
Sourcepub fn has_permission(
&self,
subject: &AuthCtx,
action: &str,
object: &dyn AttrSet,
environment: &Environment,
) -> bool
pub fn has_permission( &self, subject: &AuthCtx, action: &str, object: &dyn AttrSet, environment: &Environment, ) -> bool
Core permission check function
Sourcepub fn has_collection_permission(
&self,
subject: &AuthCtx,
subject_attrs: &dyn AttrSet,
resource_type: &str,
action: &str,
environment: &Environment,
) -> bool
pub fn has_collection_permission( &self, subject: &AuthCtx, subject_attrs: &dyn AttrSet, resource_type: &str, action: &str, environment: &Environment, ) -> bool
Evaluate collection policy (for CREATE operations)
Collection policies check subject attributes without an object existing. Used for operations like “can user upload files?” or “can user create posts?”
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PermissionChecker
impl RefUnwindSafe for PermissionChecker
impl Send for PermissionChecker
impl Sync for PermissionChecker
impl Unpin for PermissionChecker
impl UnsafeUnpin for PermissionChecker
impl UnwindSafe for PermissionChecker
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().