pub struct AccessControlRepository { /* private fields */ }Implementations§
Source§impl AccessControlRepository
impl AccessControlRepository
Sourcepub async fn get_entity(
&self,
entity_type: EntityKind,
entity_id: &str,
) -> AuthzResult<Option<EntityRow>>
pub async fn get_entity( &self, entity_type: EntityKind, entity_id: &str, ) -> AuthzResult<Option<EntityRow>>
Look up one entity catalog row. Ok(None) means the entity has no
catalog row at all (publish-pipeline bootstrap gap) — the resolver
turns this into crate::authz::DenyReason::UnknownEntity.
Sourcepub async fn upsert_entity(
&self,
entity_type: EntityKind,
entity_id: &str,
default_included: bool,
source: &str,
) -> AuthzResult<()>
pub async fn upsert_entity( &self, entity_type: EntityKind, entity_id: &str, default_included: bool, source: &str, ) -> AuthzResult<()>
Upsert an entity catalog row. Always overwrites default_included and
source so the most recent bootstrap pass wins — the publish pipeline
is the source of truth and runs ahead of YAML grant ingestion.
Sourcepub async fn list_entities(
&self,
entity_type: EntityKind,
) -> AuthzResult<Vec<EntityRow>>
pub async fn list_entities( &self, entity_type: EntityKind, ) -> AuthzResult<Vec<EntityRow>>
Bulk-fetch every catalog row for a given kind. Used by the CLI lint and the publish-pipeline validator to detect rules pointing at entities the bootstrap pass never registered.
Source§impl AccessControlRepository
impl AccessControlRepository
pub async fn list_role_rules_for_export( &self, ) -> AuthzResult<Vec<ExportRuleRow>>
pub async fn list_rules_for_entity( &self, entity_type: EntityKind, entity_id: &str, ) -> AuthzResult<Vec<AccessRule>>
pub async fn list_rules_bulk( &self, entity_type: EntityKind, entity_ids: &[String], ) -> AuthzResult<HashMap<String, Vec<AccessRule>>>
Sourcepub async fn upsert_rule(
&self,
params: UpsertRuleParams<'_>,
) -> AuthzResult<AccessRule>
pub async fn upsert_rule( &self, params: UpsertRuleParams<'_>, ) -> AuthzResult<AccessRule>
Fails with a foreign-key violation if no entity catalog row exists for
(entity_type, entity_id) — register the entity via
Self::upsert_entity first.
Sourcepub async fn set_justification(
&self,
rule_id: &RuleId,
justification: Option<&str>,
) -> AuthzResult<bool>
pub async fn set_justification( &self, rule_id: &RuleId, justification: Option<&str>, ) -> AuthzResult<bool>
None clears the operator note.
pub async fn delete_rule(&self, rule_id: &RuleId) -> AuthzResult<bool>
Trait Implementations§
Source§impl Clone for AccessControlRepository
impl Clone for AccessControlRepository
Source§fn clone(&self) -> AccessControlRepository
fn clone(&self) -> AccessControlRepository
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 AccessControlRepository
impl !RefUnwindSafe for AccessControlRepository
impl Send for AccessControlRepository
impl Sync for AccessControlRepository
impl Unpin for AccessControlRepository
impl UnsafeUnpin for AccessControlRepository
impl !UnwindSafe for AccessControlRepository
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 more