mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-15 23:22:59 +08:00
feat(admin): /admin/users 新增按用户 API Key 所在分组过滤
- 支持专用/公开/订阅/已禁用四类分组:按 api_keys.group_id 精确匹配, 排除软删除 key(EXISTS + DeletedAtIsNil);已禁用分组单独成区, 覆盖 key 仍挂在禁用分组上的用户 - 后端:UserListFilters.APIKeyGroupID;handler 解析 api_key_group_id; repo HasAPIKeysWith 谓词;GetAllGroupsIncludingInactive 新接口 (/admin/groups/all?include_inactive=true) - 前端:下拉按类型分区单选;UsersView 独立 allGroupsForApiKeyFilter loader;分区标题用负数哨兵值修复 Vue :key 重复问题 - 测试:repo 集成 5/5(含软删除排除、多 key 去重、叠加 status 过滤)、 handler 单测 5/5、前端 vitest 6/6 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
committed by
QTom
co-authored by
Claude Opus 4.8
parent
be01744565
commit
329414ea4f
@@ -264,6 +264,10 @@ func (s *stubAdminService) GetAllGroupsByPlatform(ctx context.Context, platform
|
||||
return s.groups, nil
|
||||
}
|
||||
|
||||
func (s *stubAdminService) GetAllGroupsIncludingInactive(ctx context.Context) ([]service.Group, error) {
|
||||
return s.groups, nil
|
||||
}
|
||||
|
||||
func (s *stubAdminService) GetGroup(ctx context.Context, id int64) (*service.Group, error) {
|
||||
group := service.Group{ID: id, Name: "group", Status: service.StatusActive}
|
||||
return &group, nil
|
||||
|
||||
Reference in New Issue
Block a user