docs(product-v2): P2.3 changelog 补"@DataScope 拦截"实际效果说明
2026-05-18 测试服 e2e 验证发现: Service 层删了 checkPriceEditPermission 但外层 @DataScope 数据权限仍拦 CUSTOMIZER 非 owner 产品 (HTTP 403)。 权限放宽实际只解锁同公司多 CUSTOMIZER 协作场景, mmg 不要误导用户以为 "OPERATOR 角色也能保存任意产品"。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
这个提交包含在:
父节点
7bb56dbd5c
当前提交
addb9cc8cf
@ -10,10 +10,15 @@
|
||||
|
||||
## ⚠️ 关键变化(前端 mmg 必看)
|
||||
|
||||
### 1. 保存版本权限放宽 — 所有 admin 都能保存
|
||||
- **旧**:只有 SUPER_ADMIN 或 CUSTOMIZER+owner 能调 `POST /admin/product/item/{id}/snapshots`
|
||||
- **新**:**所有 admin 登录态都能保存**自己看到的产品版本(OPERATOR / CUSTOMER_SERVICE / 等等都能存)
|
||||
- 还原/删除/标记永久**仍严格校验**(这些是改业务数据的危险动作)
|
||||
### 1. 保存版本权限:Service 层校验删除(但外层 @DataScope 仍生效)
|
||||
- **旧**:Service 层 `checkPriceEditPermission` 校验 SUPER_ADMIN 或 CUSTOMIZER+owner
|
||||
- **新**:Service 层校验**已删除**(saveSnapshot 不再调 checkPriceEditPermission)
|
||||
- ⚠️ **实际效果(2026-05-18 测试服 e2e 验证)**:
|
||||
- SUPER_ADMIN:任何产品都能保存 ✅
|
||||
- CUSTOMIZER:**只能保存自己创建的产品**(外层 `@DataScope` 数据权限拦截非 owner 产品 → HTTP 403 "无操作权限")
|
||||
- OPERATOR / 其他角色:受外层数据权限+菜单权限制约,**通常不能操作产品快照接口**
|
||||
- **真实业务收益**:解锁了「定制师本人 + 该产品所属公司其他 CUSTOMIZER 同事」的多角色保存场景(之前只 SUPER_ADMIN 或单一 owner)。彻底"所有 admin 都能保存任意产品"**没达成**(@DataScope 拦着,符合业务安全考虑——CUSTOMIZER 不该备份别人的产品)
|
||||
- 还原/删除/标记永久**仍保留 Service 层 checkPriceEditPermission 严格校验**
|
||||
|
||||
### 2. 可保存状态扩到 3 种
|
||||
- **旧**:`DRAFT / COMPLETED`
|
||||
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户