pub struct AbacPolicy {
pub attributes: HashMap<String, Value>,
pub rules: Vec<AbacRule>,
}Expand description
Attribute-Based Access Control (ABAC) policy.
Associates a set of attribute rules with the permissions they grant.
Evaluated by PermissionChecker::check_advanced_permission.
Fields§
§attributes: HashMap<String, Value>§rules: Vec<AbacRule>Implementations§
Source§impl AbacPolicy
impl AbacPolicy
Sourcepub fn with_attribute(self, key: impl Into<String>, value: Value) -> Self
pub fn with_attribute(self, key: impl Into<String>, value: Value) -> Self
Add an attribute to the policy.
Sourcepub fn with_attributes<I, K>(self, attributes: I) -> Self
pub fn with_attributes<I, K>(self, attributes: I) -> Self
Add multiple attributes to the policy.
Sourcepub fn with_rule(
self,
attribute: impl Into<String>,
expected_value: Value,
permission: Permission,
) -> Self
pub fn with_rule( self, attribute: impl Into<String>, expected_value: Value, permission: Permission, ) -> Self
Add a rule to the policy.
Sourcepub fn with_rules<I>(self, rules: I) -> Selfwhere
I: IntoIterator<Item = AbacRule>,
pub fn with_rules<I>(self, rules: I) -> Selfwhere
I: IntoIterator<Item = AbacRule>,
Add multiple rules to the policy.
Trait Implementations§
Source§impl Clone for AbacPolicy
impl Clone for AbacPolicy
Source§fn clone(&self) -> AbacPolicy
fn clone(&self) -> AbacPolicy
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 AbacPolicy
impl RefUnwindSafe for AbacPolicy
impl Send for AbacPolicy
impl Sync for AbacPolicy
impl Unpin for AbacPolicy
impl UnsafeUnpin for AbacPolicy
impl UnwindSafe for AbacPolicy
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<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