Files
X-Financial/document/development/2026-07-17/dev-logs/bugs/travel-calculator-employee-tenant-isolation.md
caoxiaozhu 787bc3a481 feat(platform): close AI expense value loop
Add tenant-safe value, telemetry, connector, commercial, and production-readiness foundations.
2026-07-17 14:14:08 +08:00

1.8 KiB
Raw Blame History

差旅计算器员工解析跨租户命中

日期2026-07-17 文档路径document/development/2026-07-17/dev-logs/bugs/travel-calculator-employee-tenant-isolation.md

修复记录

  • 14:07记录 bug 修复差旅计算器员工解析跨租户命中。bug-log:242d68c3
    • Git 提交检查:已执行 git fetch --all --prune、状态、upstream 和双向日志检查;origin/main 无新提交,本地 main ahead 17。ahead 摘要:242d68c3/28b834ed/4940ebc4 为审批与风险处置,ee88a36ba662cfe6 为费用学习/预审/票据/记忆闭环,5ed34c2b/11275e4b 为回填和迁移安全,1347366b/22669a90/a616b30c/661990b2 为费用事件与事务,653eda05 为认证会话;本轮未改写这些提交。
    • 根因:差旅计算器按邮箱、工号或姓名查员工时没有租户谓词,也忽略认证上下文的 employee_id/employee_no;员工身份现为租户内唯一,不同企业可以合法存在相同值,首条命中会把另一企业职级和办公城市带入计算。
    • 修改:travel_reimbursement_calculator.py 先校验可信 tenant_id,将 employee_id 加入最高优先候选,所有 ID/邮箱/工号/姓名查询都以 Employee.tenant_id 为首层条件。
    • 操作:新增两企业相同邮箱、工号和姓名的反向测试,故意先插入另一企业员工,确认当前登录企业的 employee ID、职级和地点始终胜出。
    • 验证:容器内差旅计算器 5 项通过;员工服务、导入、认证和行为画像 35 项通过;目标 Ruff、format check、compileall、代码体积门禁和 git diff --check 通过。
    • 影响:差旅住宿、补助和交通估算不会再读取另一企业员工的职级或办公地点;无合法租户时直接失败关闭。