Filter hidden servers in guest server-group API

This commit is contained in:
NikoCat233
2026-02-27 00:53:31 +08:00
parent 04553ca17f
commit 1a0d915afa
+15
View File
@@ -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)
}