Skip to main content

PermissionRule

Trait PermissionRule 

Source
pub trait PermissionRule: Send + Sync {
    // Required methods
    fn name(&self) -> &'static str;
    fn apply(
        &self,
        ctx: &PermissionContext,
    ) -> Result<Option<String>, PermissionError>;
}
Expand description

数据权限规则 trait

每个规则负责生成一段 WHERE 子句(不含 WHERE 关键字本身), 拦截器会将多个规则的子句用 AND 连接,自动追加到原 SQL。

§规则返回值

  • Ok(Some(clause)):应用规则,返回 WHERE 子句片段(如 "tenant_id = 5"
  • Ok(None):规则不适用(如管理员跳过、上下文缺失必要字段)
  • Err(e):规则执行失败(如配置错误)

Required Methods§

Source

fn name(&self) -> &'static str

规则名称(用于调试、日志)

Source

fn apply( &self, ctx: &PermissionContext, ) -> Result<Option<String>, PermissionError>

生成 WHERE 子句片段

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§