From 1a0d915afa40827736c68dbcf05741fdc60e06b1 Mon Sep 17 00:00:00 2001 From: NikoCat233 Date: Fri, 27 Feb 2026 00:53:31 +0800 Subject: [PATCH] Filter hidden servers in guest server-group API --- cmd/dashboard/controller/server_group.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/cmd/dashboard/controller/server_group.go b/cmd/dashboard/controller/server_group.go index 67a17f1..bc491e8 100644 --- a/cmd/dashboard/controller/server_group.go +++ b/cmd/dashboard/controller/server_group.go @@ -26,12 +26,27 @@ func listServerGroup(c *gin.Context) ([]*model.ServerGroupResponseItem, error) { return nil, err } + _, isMember := c.Get(model.CtxKeyAuthorizedUser) + authorized := isMember + + visibleServerIDs := make(map[uint64]struct{}) + if !authorized { + for _, server := range singleton.ServerShared.GetSortedListForGuest() { + visibleServerIDs[server.ID] = struct{}{} + } + } + groupServers := make(map[uint64][]uint64, 0) var sgs []model.ServerGroupServer if err := singleton.DB.Find(&sgs).Error; err != nil { return nil, err } for _, s := range sgs { + if !authorized { + if _, ok := visibleServerIDs[s.ServerId]; !ok { + continue + } + } if _, ok := groupServers[s.ServerGroupId]; !ok { groupServers[s.ServerGroupId] = make([]uint64, 0) }