Files
huang b02175271a
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m39s
feat: 实现企业设备授权功能并归档 OpenSpec 变更
- 新增企业设备授权模块(Model、DTO、Service、Handler、Store)
- 实现设备授权的创建、查询、更新、删除等完整业务逻辑
- 添加企业卡授权与设备授权的关联关系
- 新增 2 个数据库迁移脚本
- 同步 OpenSpec delta specs 到 main specs
- 归档 add-enterprise-device-authorization 变更
- 更新 API 文档和路由配置
- 新增完整的集成测试和单元测试覆盖
2026-01-29 13:18:49 +08:00

2.3 KiB
Raw Blame History

规格:角色请求验证

新增需求

需求Create 方法验证必填字段

RoleHandler.Create 方法必须验证 CreateRoleRequest 的所有必填字段。

场景:缺少 role_name 返回验证错误

  • WHEN 客户端发送 POST /api/admin/roles 请求body 缺少 role_name 字段
  • THEN 返回 HTTP 400
  • AND 响应包含错误码CodeInvalidParam
  • AND 错误消息提示 "参数验证失败"

场景:缺少 role_type 返回验证错误

  • WHEN 客户端发送 POST /api/admin/roles 请求body 缺少 role_type 字段
  • THEN 返回 HTTP 400
  • AND 响应包含错误码CodeInvalidParam

场景role_name 过长返回验证错误

  • WHEN 客户端发送 POST /api/admin/roles 请求role_name 超过 50 个字符
  • THEN 返回 HTTP 400
  • AND 响应包含错误码CodeInvalidParam

需求Update 方法验证字段格式

RoleHandler.Update 方法必须验证 UpdateRoleRequest 的字段格式。

场景role_name 过长返回验证错误

  • WHEN 客户端发送 PUT /api/admin/roles/:id 请求role_name 超过 50 个字符
  • THEN 返回 HTTP 400
  • AND 响应包含错误码CodeInvalidParam

场景status 值非法返回验证错误

  • WHEN 客户端发送 PUT /api/admin/roles/:id 请求status 值不是 0 或 1
  • THEN 返回 HTTP 400
  • AND 响应包含错误码CodeInvalidParam

需求AssignPermissions 方法验证权限ID列表

RoleHandler.AssignPermissions 方法必须验证权限ID列表不为空。

场景perm_ids 为空数组返回验证错误

  • WHEN 客户端发送 POST /api/admin/roles/:id/permissions 请求perm_ids 为空数组 []
  • THEN 返回 HTTP 400
  • AND 响应包含错误码CodeInvalidParam

需求UpdateStatus 方法验证状态值

RoleHandler.UpdateStatus 方法必须验证状态值在有效范围内。

场景status 值非法返回验证错误

  • WHEN 客户端发送 PUT /api/admin/roles/:id/status 请求status 值不是 0 或 1
  • THEN 返回 HTTP 400
  • AND 响应包含错误码CodeInvalidParam

测试要求

  • 取消 tests/integration/role_test.go 中的 TODO 跳过(第 51 行)
  • 验证测试能够通过,证明验证逻辑正常工作