pub struct DefaultOwnerOnlyPolicy;Expand description
Default policy: the identity must equal the file’s owner.
Requires the consumer’s Identity type to expose an owner id reachable
via the HasOwnerId trait. Consumers with richer rules (sharing,
workspace membership, public files) should implement AuthzPolicy
directly.
Trait Implementations§
Source§impl<I> AuthzPolicy<I> for DefaultOwnerOnlyPolicy
impl<I> AuthzPolicy<I> for DefaultOwnerOnlyPolicy
fn decide<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
identity: &'life1 I,
file: &'life2 StoredFile,
) -> Pin<Box<dyn Future<Output = Result<AuthzDecision, BucketError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn ensure_can_read<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
identity: &'life1 Identity,
file: &'life2 StoredFile,
) -> Pin<Box<dyn Future<Output = Result<(), BucketError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn ensure_can_read<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
identity: &'life1 Identity,
file: &'life2 StoredFile,
) -> Pin<Box<dyn Future<Output = Result<(), BucketError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Convenience: return
Err(Forbidden) when decide says Deny.Auto Trait Implementations§
impl Freeze for DefaultOwnerOnlyPolicy
impl RefUnwindSafe for DefaultOwnerOnlyPolicy
impl Send for DefaultOwnerOnlyPolicy
impl Sync for DefaultOwnerOnlyPolicy
impl Unpin for DefaultOwnerOnlyPolicy
impl UnsafeUnpin for DefaultOwnerOnlyPolicy
impl UnwindSafe for DefaultOwnerOnlyPolicy
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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 moreCreates a shared type from an unshared type.