pub struct AuthorizationPolicy { /* private fields */ }Implementations§
Source§impl AuthorizationPolicy
impl AuthorizationPolicy
Sourcepub fn decide_accepted_work(
&self,
request: AuthorizationRequest,
existing: Option<&AuthorizationDecision>,
accepted: &AuthorizationDecision,
now: OffsetDateTime,
ttl: AuthorizationDecisionTtl,
) -> Result<AuthorizationDecisionPlan, DomainError>
pub fn decide_accepted_work( &self, request: AuthorizationRequest, existing: Option<&AuthorizationDecision>, accepted: &AuthorizationDecision, now: OffsetDateTime, ttl: AuthorizationDecisionTtl, ) -> Result<AuthorizationDecisionPlan, DomainError>
Admit completion of work whose original authorization is sealed in a durable domain record. The current evidence remains tied to the exact principal, scope and admission decision even after grant revocation.
Source§impl AuthorizationPolicy
impl AuthorizationPolicy
pub fn empty() -> Self
pub fn rehydrate( events: &[AuthorizationPolicyEvent], ) -> Result<Self, DomainError>
pub const fn version(&self) -> AuthorizationPolicyVersion
pub fn id(&self) -> Option<&AuthorizationPolicyId>
pub fn owner(&self) -> Option<&AuthenticatedPrincipal>
pub fn decisions(&self) -> impl Iterator<Item = &AuthorizationDecision>
pub fn grants(&self) -> impl Iterator<Item = &AuthorizationGrant>
pub fn revoked_grant_ids(&self) -> impl Iterator<Item = &AuthorizationGrantId>
pub fn separation_rules(&self) -> impl Iterator<Item = SeparationRule> + '_
pub fn decide_open( &self, policy_id: AuthorizationPolicyId, owner: AuthenticatedPrincipal, separation_rules: Vec<SeparationRule>, opened_at: OffsetDateTime, ) -> Result<Option<AuthorizationPolicyEvent>, DomainError>
pub fn decide_issue( &self, issuer: &AuthenticatedPrincipal, grant: AuthorizationGrant, now: OffsetDateTime, ) -> Result<Option<AuthorizationPolicyEvent>, DomainError>
pub fn decide_revoke( &self, issuer: &AuthenticatedPrincipal, grant_id: &AuthorizationGrantId, reason: AuthorizationRevocationReason, now: OffsetDateTime, ) -> Result<Option<AuthorizationPolicyEvent>, DomainError>
pub fn permits( &self, principal: &AuthenticatedPrincipal, action: AuthorizationAction, scope: &AuthorizationScope, now: OffsetDateTime, ) -> bool
pub fn apply( &mut self, event: AuthorizationPolicyEvent, ) -> Result<(), DomainError>
pub fn apply_projected( &mut self, event: AuthorizationPolicyEvent, approval: Option<&AuthorizationDecision>, ) -> Result<(), DomainError>
pub fn restore_version( &mut self, version: AuthorizationPolicyVersion, ) -> Result<(), DomainError>
Trait Implementations§
Source§impl Clone for AuthorizationPolicy
impl Clone for AuthorizationPolicy
Source§impl Debug for AuthorizationPolicy
impl Debug for AuthorizationPolicy
Source§impl Default for AuthorizationPolicy
impl Default for AuthorizationPolicy
impl Eq for AuthorizationPolicy
Source§impl PartialEq for AuthorizationPolicy
impl PartialEq for AuthorizationPolicy
impl StructuralPartialEq for AuthorizationPolicy
Auto Trait Implementations§
impl Freeze for AuthorizationPolicy
impl RefUnwindSafe for AuthorizationPolicy
impl Send for AuthorizationPolicy
impl Sync for AuthorizationPolicy
impl Unpin for AuthorizationPolicy
impl UnsafeUnpin for AuthorizationPolicy
impl UnwindSafe for AuthorizationPolicy
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