diff --git a/changelogs/2026-05/18_feat_product_v2_snapshot_p23_loosen_save_group_batch.md b/changelogs/2026-05/18_feat_product_v2_snapshot_p23_loosen_save_group_batch.md index 711be27..86ef06f 100644 --- a/changelogs/2026-05/18_feat_product_v2_snapshot_p23_loosen_save_group_batch.md +++ b/changelogs/2026-05/18_feat_product_v2_snapshot_p23_loosen_save_group_batch.md @@ -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`