feat(role): 新增平台角色管理功能增强

- 权限表增加 available_for_role_types 字段,支持标记权限可用角色类型
- 权限列表和权限树接口支持按 available_for_role_type 过滤
- 新增角色状态切换接口 PUT /api/admin/roles/:id/status
- 角色分配权限时验证权限的可用角色类型
- 完善数据库迁移脚本和单元测试
- 补充数据库迁移相关开发规范文档
This commit is contained in:
2026-01-14 12:15:57 +08:00
parent 9c399df6bc
commit 5556b1028c
22 changed files with 1474 additions and 87 deletions

View File

@@ -109,7 +109,15 @@ func (h *PermissionHandler) List(c *fiber.Ctx) error {
// GetTree 获取权限树
// GET /api/v1/permissions/tree
func (h *PermissionHandler) GetTree(c *fiber.Ctx) error {
tree, err := h.service.GetTree(c.UserContext())
var availableForRoleType *int
if roleTypeStr := c.Query("available_for_role_type"); roleTypeStr != "" {
roleType, err := strconv.Atoi(roleTypeStr)
if err == nil && (roleType == 1 || roleType == 2) {
availableForRoleType = &roleType
}
}
tree, err := h.service.GetTree(c.UserContext(), availableForRoleType)
if err != nil {
return err
}