pub struct PermissionGuard<E> { /* private fields */ }Expand description
Wraps a ResourcePolicy<E> and enforces it, returning typed errors.
Inject one Arc<PermissionGuard<E>> per handler family.
Implementations§
Source§impl<E: Send + Sync + 'static> PermissionGuard<E>
impl<E: Send + Sync + 'static> PermissionGuard<E>
pub fn new(policy: Arc<dyn ResourcePolicy<E>>) -> Self
Sourcepub async fn check(
&self,
action: ResourceAction,
entity: &E,
ctx: &AuthContext,
) -> Result<(), AccessDenied>
pub async fn check( &self, action: ResourceAction, entity: &E, ctx: &AuthContext, ) -> Result<(), AccessDenied>
Check whether ctx may perform action on entity.
Returns Ok(()) on permit, Err(AccessDenied) on deny.
Auto Trait Implementations§
impl<E> !RefUnwindSafe for PermissionGuard<E>
impl<E> !UnwindSafe for PermissionGuard<E>
impl<E> Freeze for PermissionGuard<E>
impl<E> Send for PermissionGuard<E>
impl<E> Sync for PermissionGuard<E>
impl<E> Unpin for PermissionGuard<E>
impl<E> UnsafeUnpin for PermissionGuard<E>
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