pub struct PolicyEngine { /* private fields */ }Expand description
Policy engine that evaluates actions against stored rules
Implementations§
Source§impl PolicyEngine
impl PolicyEngine
Sourcepub fn new() -> PolicyEngine
pub fn new() -> PolicyEngine
Create a new policy engine with an empty policy set
Sourcepub fn with_policy_set(policy_set: PolicySet) -> PolicyEngine
pub fn with_policy_set(policy_set: PolicySet) -> PolicyEngine
Create a policy engine with the given policy set
Sourcepub fn load_from_persistence(
persistence: &Persistence,
) -> Result<PolicyEngine, Error>
pub fn load_from_persistence( persistence: &Persistence, ) -> Result<PolicyEngine, Error>
Load policies from persistence layer Policies are stored in the policy_cache table with key “policies”
Sourcepub fn save_to_persistence(
&self,
persistence: &Persistence,
) -> Result<(), Error>
pub fn save_to_persistence( &self, persistence: &Persistence, ) -> Result<(), Error>
Save current policy set to persistence
Sourcepub fn reload(&mut self, persistence: &Persistence) -> Result<(), Error>
pub fn reload(&mut self, persistence: &Persistence) -> Result<(), Error>
Reload policies from persistence
Sourcepub fn check(&self, agent: &str, action: &str, resource: &str) -> PolicyDecision
pub fn check(&self, agent: &str, action: &str, resource: &str) -> PolicyDecision
Evaluate a policy decision for the given agent, action, and resource Rules are evaluated in order, and the first matching rule determines the decision If no rules match, the default is to deny with a reason
Sourcepub fn rule_count(&self) -> usize
pub fn rule_count(&self) -> usize
Get the number of rules in the policy set
Sourcepub fn add_rule(&mut self, rule: PolicyRule)
pub fn add_rule(&mut self, rule: PolicyRule)
Add a rule to the policy set
Sourcepub fn policy_set(&self) -> &PolicySet
pub fn policy_set(&self) -> &PolicySet
Get a reference to the policy set
Trait Implementations§
Source§impl Clone for PolicyEngine
impl Clone for PolicyEngine
Source§fn clone(&self) -> PolicyEngine
fn clone(&self) -> PolicyEngine
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 PolicyEngine
impl Debug for PolicyEngine
Source§impl Default for PolicyEngine
impl Default for PolicyEngine
Source§fn default() -> PolicyEngine
fn default() -> PolicyEngine
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for PolicyEngine
impl RefUnwindSafe for PolicyEngine
impl Send for PolicyEngine
impl Sync for PolicyEngine
impl Unpin for PolicyEngine
impl UnwindSafe for PolicyEngine
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
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
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().