pub struct Engine<S, C = NoCache> { /* private fields */ }Expand description
租户 RBAC 授权引擎。
Implementations§
Source§impl<S, C> Engine<S, C>where
S: AuthorizationSource,
C: Cache,
impl<S, C> Engine<S, C>where
S: AuthorizationSource,
C: Cache,
Sourcepub fn config(&self) -> &EngineConfig
pub fn config(&self) -> &EngineConfig
返回当前引擎配置。
Sourcepub async fn accessible_scope(&self, query: ScopeQuery) -> Result<AccessScope>
pub async fn accessible_scope(&self, query: ScopeQuery) -> Result<AccessScope>
计算某个权限可访问的数据范围。
Sourcepub async fn can_access_scope(
&self,
request: ScopedAccessRequest,
) -> Result<AccessDecision>
pub async fn can_access_scope( &self, request: ScopedAccessRequest, ) -> Result<AccessDecision>
检查主体是否可以访问目标范围路径。
Sourcepub async fn can_tenant(
&self,
request: TenantAccessRequest,
) -> Result<AccessDecision>
pub async fn can_tenant( &self, request: TenantAccessRequest, ) -> Result<AccessDecision>
检查主体是否拥有租户级访问权。
Sourcepub async fn explain_access_scope(
&self,
request: ScopedAccessRequest,
) -> Result<AccessExplanation>
pub async fn explain_access_scope( &self, request: ScopedAccessRequest, ) -> Result<AccessExplanation>
解释目标路径访问检查结果。
Sourcepub async fn explain_tenant(
&self,
request: TenantAccessRequest,
) -> Result<AccessExplanation>
pub async fn explain_tenant( &self, request: TenantAccessRequest, ) -> Result<AccessExplanation>
解释租户级访问检查结果。
Sourcepub async fn invalidate_principal(
&self,
tenant: &TenantId,
principal: &PrincipalId,
)
pub async fn invalidate_principal( &self, tenant: &TenantId, principal: &PrincipalId, )
失效某个主体的缓存授权。
Sourcepub async fn invalidate_role(&self, tenant: &TenantId, role: &RoleId)
pub async fn invalidate_role(&self, tenant: &TenantId, role: &RoleId)
失效某个角色的缓存授权。
Sourcepub async fn invalidate_tenant(&self, tenant: &TenantId)
pub async fn invalidate_tenant(&self, tenant: &TenantId)
失效某个租户的缓存授权。
Sourcepub async fn invalidate_all(&self)
pub async fn invalidate_all(&self)
失效所有缓存授权。
Trait Implementations§
Auto Trait Implementations§
impl<S, C> Freeze for Engine<S, C>
impl<S, C> RefUnwindSafe for Engine<S, C>where
S: RefUnwindSafe,
C: RefUnwindSafe,
impl<S, C> Send for Engine<S, C>
impl<S, C> Sync for Engine<S, C>
impl<S, C> Unpin for Engine<S, C>
impl<S, C> UnsafeUnpin for Engine<S, C>where
S: UnsafeUnpin,
C: UnsafeUnpin,
impl<S, C> UnwindSafe for Engine<S, C>where
S: UnwindSafe,
C: UnwindSafe,
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