pub fn evaluate(
rules: &RoleRules,
ctx: Option<&Context>,
role_list: Option<&[String]>,
doc: Doc<'_>,
) -> boolExpand description
评估当前用户是否满足指定角色白名单。
判决输入全部来自 rules(用户配置,默认 []/[]/Open),无任何内置角色硬编码:
- 豁免:有效角色 ∩
rules.exempt_roles≠ ∅ → true(默认空 = 无豁免)。豁免检查 先于未配置姿态——设计 §11.3「一切判决环节直通」:set_exempt_roles与Closed并存时豁免仍生效(豁免是显式信任声明,姿态管不住它); - 未配置(role_list 缺失/空):
Open放行(guest 读拒已随清单化移除——迁移差异, 设计 §11.4);Closed对非内部用户全拒(fail-secure);ctx=None 与 internal 的直通不受姿态影响(无 ctx 维度归require_context管,设计 §11.6)。