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>>
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<()>
Overwrites default_included and source on conflict 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 upsert_entities(
&self,
entity_type: EntityKind,
ids: &[&str],
default_included: bool,
source: &str,
) -> AuthzResult<()>
pub async fn upsert_entities( &self, entity_type: EntityKind, ids: &[&str], default_included: bool, source: &str, ) -> AuthzResult<()>
One statement for the whole batch, instead of ids.len() awaits of
Self::upsert_entity; all rows share one default_included and
source.
pub async fn list_entities( &self, entity_type: EntityKind, ) -> AuthzResult<Vec<EntityRow>>
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 !RefUnwindSafe for AccessControlRepository
impl !UnwindSafe for AccessControlRepository
impl Freeze for AccessControlRepository
impl Send for AccessControlRepository
impl Sync for AccessControlRepository
impl Unpin for AccessControlRepository
impl UnsafeUnpin 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,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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