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§
Sourcefn apply(
&self,
ctx: &PermissionContext,
) -> Result<Option<String>, PermissionError>
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".