Skip to main content

sz_rust_orm_facade/data_scope/modes/
all.rs

1//! ALL 模式 — 全部数据(不追加任何条件)
2
3use super::ModeEvaluator;
4use crate::data_scope::context::DataScopeContext;
5use crate::data_scope::error::DataScopeError;
6use crate::data_scope::rule::DataScopeRule;
7use crate::repository::WhereCondition;
8use async_trait::async_trait;
9
10/// ALL 模式评估器
11pub struct AllMode;
12
13#[async_trait]
14impl ModeEvaluator for AllMode {
15    async fn evaluate(
16        &self,
17        _ctx: &DataScopeContext,
18        _rule: &DataScopeRule,
19    ) -> Result<Vec<WhereCondition>, DataScopeError> {
20        Ok(Vec::new())
21    }
22}
23
24#[cfg(test)]
25mod tests {
26    use super::*;
27
28    #[tokio::test]
29    async fn test_all_mode_returns_empty() {
30        let mode = AllMode;
31        let ctx = DataScopeContext::new(1, 5, false);
32        let rule = DataScopeRule::new("order", crate::data_scope::rule::DataScopeMode::All);
33        let conditions = mode.evaluate(&ctx, &rule).await.unwrap();
34        assert!(conditions.is_empty());
35    }
36}