All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 4m39s
2.6 KiB
2.6 KiB
Requirement: 超级管理员可设置和修改全局操作密码
系统 SHALL 提供 POST /api/admin/super-admin/operation-password 接口,仅允许 user_type=1(超级管理员)调用,用于设置或修改全局操作密码。密码以 bcrypt 哈希值存储于 Redis。
Scenario: 超级管理员首次设置操作密码
- WHEN 超级管理员调用
POST /api/admin/super-admin/operation-password,传入合法的password和confirm_password(两者一致) - THEN 系统将 bcrypt 哈希后的密码写入 Redis,返回 200 成功
Scenario: 超级管理员修改已有操作密码
- WHEN 操作密码已存在,超级管理员重新调用设置接口传入新密码
- THEN 系统覆盖 Redis 中的旧哈希值,返回 200 成功
Scenario: 非超级管理员调用被拒绝
- WHEN
user_type != 1的账号调用POST /api/admin/super-admin/operation-password - THEN 系统返回 403,错误消息"仅超级管理员可设置操作密码"
Scenario: 两次密码不一致
- WHEN 超级管理员传入的
password与confirm_password不一致 - THEN 系统返回 400,错误消息"两次输入的密码不一致"
Requirement: 可查询操作密码设置状态
系统 SHALL 提供 GET /api/admin/super-admin/operation-password/status 接口,返回操作密码是否已设置(布尔值),不返回密码本身,仅超级管理员可调用。
Scenario: 查询已设置状态
- WHEN 操作密码已设置,超级管理员调用状态查询接口
- THEN 返回
{"is_set": true}
Scenario: 查询未设置状态
- WHEN 操作密码未设置(Redis 中无对应 key),超级管理员调用状态查询接口
- THEN 返回
{"is_set": false}
Requirement: 操作密码验证使用全局操作密码
系统 SHALL 将所有需要操作密码验证的接口(目前为 agent-recharges 线下充值确认)改为验证全局操作密码,而非当前登录用户的登录密码。
Scenario: 操作密码正确时通过验证
- WHEN 调用需要操作密码的接口,传入正确的全局操作密码
- THEN 验证通过,接口正常执行后续业务逻辑
Scenario: 操作密码错误时拒绝
- WHEN 调用需要操作密码的接口,传入错误的密码
- THEN 系统返回 400,错误消息"操作密码错误"
Scenario: 操作密码未设置时拒绝
- WHEN Redis 中无操作密码,调用需要操作密码的接口
- THEN 系统返回 400,错误消息"操作密码未设置,请联系超级管理员"