feat: complete leave approval MVP
This commit is contained in:
@@ -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,避免泄露资源是否存在。
|
||||
Reference in New Issue
Block a user