mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-05-06 05:38:50 +00:00
Merge pull request #1172 from NikoCat233/fix/guest-server-group-filter
Filter hidden servers in guest server-group API
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user