Files
cmhub/docs/tasks/T-631.md
T

52 lines
2.0 KiB
Markdown
Raw Normal View History

# T-631 隐藏旧设备授权模型的 admin 菜单入口
## 背景
当前方案已经从“卡密 + 固定设备”切换为“账号订阅 + 默认多设备”。`apps.licensing` 仍保留早期设备席位、迁移资格、迁移请求和设备凭证模型,用于历史数据、审计和兼容,但这些模型不应继续作为日常运营入口。
## 目标
减少 django-admin“软件授权”模块的菜单噪音,让运营优先看到当前订阅流程需要的模型,同时保留旧数据和代码兼容性。
## 范围
从 admin 应用索引隐藏以下只读旧方案模型:
- `LicenseSeat`
- `LegacyMigrationGrant`
- `MigrationRequest`
- `DeviceCredential`
保留以下模型在 admin 中可见:
- `SoftwarePlan`
- `SoftwareEntitlement`
- `SoftwareOrder`
- `LicenseEvent`
- `ClientDevice`
- `DeviceSession`
- `DeviceBindingAudit`
## 实施约束
- 只隐藏 admin 菜单权限展示,不删除数据库表、迁移、数据或模型注册逻辑。
- 旧模型继续保持只读;不新增旧设备凭证、席位绑定或迁移资格。
- 不改变账号订阅授权、API Key、点数、充值和生成接口。
- `CMSHOPEE_SUBSCRIPTION_ENFORCEMENT` 行为不变。
2026-07-21 18:08:19 +08:00
## 实施结果
已通过 `HiddenLegacyLicenseAdmin.get_model_perms()` 将四个旧方案模型从 admin 应用索引隐藏;模型仍注册为只读 admin,数据库表和历史数据未改变。当前订阅、订单、授权事件和设备观测模型保持可见。
## 验收条件
1. admin 软件授权列表不再显示上述四个旧方案模型。
2. 当前订阅套餐、权益、软件订单和授权事件仍可正常访问。
3. 旧模型数据库表和历史数据仍存在,迁移检查无变化。
4. 非 staff 用户仍不能访问 admin。
5. 通过 admin 相关测试、`manage.py check`、迁移一致性和编译检查。
2026-07-21 18:08:19 +08:00
## 状态
DONE。定向 admin 测试 2 条通过;`manage.py check`、`makemigrations --check --dry-run`、`compileall` 和 `git diff --check` 通过。测试保留既有 MySQL 条件唯一约束 `models.W036` 警告。