feat: complete leave approval MVP

This commit is contained in:
selfrelease
2026-07-18 19:20:07 +08:00
parent 2105fe3bac
commit 090a7e33ce
133 changed files with 7845 additions and 100 deletions
+24
View File
@@ -0,0 +1,24 @@
# 数据范围与工具权限
后端以 OA 数据库中的当前用户角色为授权事实来源,不信任 Flutter 传入的角色、租户或数据范围。
## 数据范围
- `OWN`:只能访问当前租户、当前用户自己的申请、附件、通知和 AI 查询上下文。
- `ASSIGNED`:只能访问 Flowable 明确分配给当前用户的审批任务。
系统暂不提供全租户申请列表,因此 `oa_admin``hr_reviewer` 也不能绕过流程任务查看任意员工申请。
## 角色与权限
普通员工 `employee` 获得本人请假、附件、通知和只读 AI 工具权限。
以下任一角色额外获得已分配审批任务的读取和处理权限:
- `department_manager`
- `oa_admin`
- `hr_reviewer`
`GET /api/v1/me` 返回服务端计算的 `permissions``dataScopes`,客户端可据此展示工具;应用服务仍会再次校验权限,客户端隐藏按钮不能替代服务端授权。
权限不足统一返回 HTTP 403 和错误码 `PERMISSION_DENIED`。对不属于当前用户的数据和任务继续返回 404,避免泄露资源是否存在。