Skip to main content

sz_rust_orm_facade/data_scope/modes/
mod.rs

1//! 5 种数据范围模式评估器
2//!
3//! 每种模式将 `DataScopeRule` + `DataScopeContext` 转换为 `Vec<WhereCondition>`。
4
5pub mod all;
6pub mod custom;
7pub mod dept;
8pub mod dept_and_sub;
9pub mod self_mode;
10
11use crate::data_scope::context::DataScopeContext;
12use crate::data_scope::error::DataScopeError;
13use crate::data_scope::rule::DataScopeRule;
14use crate::repository::WhereCondition;
15use async_trait::async_trait;
16
17/// 模式评估器 trait
18#[async_trait]
19pub trait ModeEvaluator: Send + Sync {
20    /// 评估数据范围,返回 WHERE 条件列表
21    async fn evaluate(
22        &self,
23        ctx: &DataScopeContext,
24        rule: &DataScopeRule,
25    ) -> Result<Vec<WhereCondition>, DataScopeError>;
26}