mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-05-06 13:48:52 +00:00
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
|
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)
|
groupServers := make(map[uint64][]uint64, 0)
|
||||||
var sgs []model.ServerGroupServer
|
var sgs []model.ServerGroupServer
|
||||||
if err := singleton.DB.Find(&sgs).Error; err != nil {
|
if err := singleton.DB.Find(&sgs).Error; err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, s := range sgs {
|
for _, s := range sgs {
|
||||||
|
if !authorized {
|
||||||
|
if _, ok := visibleServerIDs[s.ServerId]; !ok {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
if _, ok := groupServers[s.ServerGroupId]; !ok {
|
if _, ok := groupServers[s.ServerGroupId]; !ok {
|
||||||
groupServers[s.ServerGroupId] = make([]uint64, 0)
|
groupServers[s.ServerGroupId] = make([]uint64, 0)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user