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