# 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` 行为不变。 ## 验收条件 1. admin 软件授权列表不再显示上述四个旧方案模型。 2. 当前订阅套餐、权益、软件订单和授权事件仍可正常访问。 3. 旧模型数据库表和历史数据仍存在,迁移检查无变化。 4. 非 staff 用户仍不能访问 admin。 5. 通过 admin 相关测试、`manage.py check`、迁移一致性和编译检查。