feat(personal): authorize enterprise knowledge from org ACL
This commit is contained in:
@@ -124,10 +124,21 @@ org.dromara.aihr.knowledge.parse
|
||||
5. 个人资料转企业知识必须复制经审核后的脱敏版本,不能把个人 item 直接改成企业 scope。
|
||||
6. 自动化测试必须使用两个用户交叉访问,验证列表、详情、检索、向量和删除均返回不可见。
|
||||
|
||||
企业知识授权由唯一生产策略 `OrgSnapshotEnterpriseKnowledgeAccessPolicy` 负责:只用登录态
|
||||
`tenant_id + user_id` 查询本人 `sys_user.phonenumber`,再匹配同租户、在职的 `aihr_org_snapshot`,
|
||||
最后按 `aihr_knowledge_acl` 的 `TENANT / PROJECT / POSITION` 规则生成 fragment allowlist。岗位别名
|
||||
`生活顾问 / 物业管家 / 客服管家` 只在服务端归一化;无组织快照、离职、无启用 ACL、表缺失或数据库故障均默认拒绝。
|
||||
这里消费的是阶段二本地/定时同步快照,不代表阶段三北森实时对接已经完成。
|
||||
|
||||
## 4. 数据模型
|
||||
|
||||
初始化 SQL:`backend/script/sql/aihr_personal_knowledge_mysql8.sql`。
|
||||
|
||||
企业 ACL 独立位于 `backend/script/sql/aihr_knowledge_mysql8.sql` 的 `aihr_knowledge_acl`,不向个人表添加
|
||||
企业 scope。ACL 以租户和 knowledge 为边界,可按租户、项目或岗位授权,并保留 `INTERNAL / RESTRICTED`
|
||||
密级字段;没有启用 ACL 的企业知识默认不可见。当前 seed 仅将 SOP `1001/1002/1003` 明确授权给一线
|
||||
生活顾问岗位,没有全租户放开。
|
||||
|
||||
### 4.1 `aihr_personal_space`
|
||||
|
||||
每个租户内每名员工一条。
|
||||
@@ -518,7 +529,7 @@ src/services/personal-assistant.ts API 客户端
|
||||
|
||||
### M3:企业知识授权融合
|
||||
|
||||
- 企业知识权限过滤。
|
||||
- 企业知识权限过滤:组织快照 + 独立 ACL + SQL fragment allowlist 下推,默认拒绝。
|
||||
- 个人/企业/mixed 三范围切换和引用域标记。
|
||||
|
||||
### M4:移动端闭环与试点
|
||||
|
||||
Reference in New Issue
Block a user