pub struct AbacPermission {
pub resource: String,
pub action: String,
pub conditions: Option<AccessCondition>,
pub attributes: HashMap<String, String>,
}Expand description
An AbacPermission represents a specific action that can be performed on a resource
Fields§
§resource: StringThe resource being accessed (e.g., “users”, “documents”, “api”)
action: StringThe action being performed (e.g., “read”, “write”, “delete”, “admin”)
conditions: Option<AccessCondition>Optional conditions for the AbacPermission
attributes: HashMap<String, String>Optional resource-specific attributes (as key-value pairs)
Implementations§
Source§impl AbacPermission
impl AbacPermission
Sourcepub fn new(resource: impl Into<String>, action: impl Into<String>) -> Self
pub fn new(resource: impl Into<String>, action: impl Into<String>) -> Self
Create a new AbacPermission
Sourcepub fn with_condition(self, condition: AccessCondition) -> Self
pub fn with_condition(self, condition: AccessCondition) -> Self
Add a condition to this AbacPermission
Sourcepub fn with_attribute(
self,
key: impl Into<String>,
value: impl Into<String>,
) -> Self
pub fn with_attribute( self, key: impl Into<String>, value: impl Into<String>, ) -> Self
Add an attribute to this AbacPermission
Sourcepub fn matches(
&self,
requested: &AbacPermission,
context: &AccessContext,
) -> bool
pub fn matches( &self, requested: &AbacPermission, context: &AccessContext, ) -> bool
Check if this AbacPermission matches a requested AbacPermission
Trait Implementations§
Source§impl Clone for AbacPermission
impl Clone for AbacPermission
Source§fn clone(&self) -> AbacPermission
fn clone(&self) -> AbacPermission
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 moreSource§impl Debug for AbacPermission
impl Debug for AbacPermission
Source§impl<'de> Deserialize<'de> for AbacPermission
impl<'de> Deserialize<'de> for AbacPermission
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Hash for AbacPermission
impl Hash for AbacPermission
Source§impl PartialEq for AbacPermission
impl PartialEq for AbacPermission
Source§impl Serialize for AbacPermission
impl Serialize for AbacPermission
impl Eq for AbacPermission
impl StructuralPartialEq for AbacPermission
Auto Trait Implementations§
impl Freeze for AbacPermission
impl RefUnwindSafe for AbacPermission
impl Send for AbacPermission
impl Sync for AbacPermission
impl Unpin for AbacPermission
impl UnsafeUnpin for AbacPermission
impl UnwindSafe for AbacPermission
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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 more