修复(#8): 分组管理核心缺陷与测试覆盖 (#11)

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
2026-06-04 03:13:38 -07:00
committed by GitHub
parent 377f13da48
commit 34cd1c524e
10 changed files with 510 additions and 74 deletions
@@ -196,10 +196,10 @@ func (l *PreviewUserNodesLogic) PreviewUserNodes(req *types.PreviewUserNodesRequ
return nil, err
}
// 6. 过滤出包含至少一个匹配节点组的节点(仅显示用户真正所在分组的节点,不包含公共节点)
// 6. 过滤出公共节点和至少一个匹配节点组的节点,与真实订阅下发保持一致
for _, n := range dbNodes {
// 节点未配置节点组(公共节点),预览时不显示
if len(n.NodeGroupIds) == 0 {
filteredNodes = append(filteredNodes, n)
continue
}
@@ -450,9 +450,13 @@ func (l *PreviewUserNodesLogic) PreviewUserNodes(req *types.PreviewUserNodesRequ
}
}
// 预览模式不显示公共节点(node_group_ids 为空的节点),只展示用户真正所在分组的节点
if len(publicNodes) > 0 {
logger.Infof("[PreviewUserNodes] skipping %d public nodes (not in user's assigned group)", len(publicNodes))
nodeGroupItems = append(nodeGroupItems, types.NodeGroupItem{
Id: 0,
Name: "公共节点",
Nodes: publicNodes,
})
logger.Infof("[PreviewUserNodes] adding public nodes group: nodes=%d", len(publicNodes))
}
} else {