2021-09-22 19:39:38 +08:00
|
|
|
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
|
|
|
|
|
|
|
|
|
|
package servergrouputils
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"errors"
|
2021-10-07 16:47:14 +08:00
|
|
|
teaconst "github.com/TeaOSLab/EdgeAdmin/internal/const"
|
2021-09-22 19:39:38 +08:00
|
|
|
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
|
|
|
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
|
|
|
|
"github.com/iwind/TeaGo/maps"
|
|
|
|
|
"github.com/iwind/TeaGo/types"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// InitGroup 初始化分组信息
|
|
|
|
|
func InitGroup(parent *actionutils.ParentAction, groupId int64, menuItem string) (*pb.ServerGroup, error) {
|
|
|
|
|
groupResp, err := parent.RPC().ServerGroupRPC().FindEnabledServerGroup(parent.AdminContext(), &pb.FindEnabledServerGroupRequest{ServerGroupId: groupId})
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
var group = groupResp.ServerGroup
|
|
|
|
|
if group == nil {
|
|
|
|
|
return nil, errors.New("group with id '" + types.String(groupId) + "' not found")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
parent.Data["group"] = maps.Map{
|
|
|
|
|
"id": group.Id,
|
|
|
|
|
"name": group.Name,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 初始化设置菜单
|
|
|
|
|
if len(menuItem) > 0 {
|
|
|
|
|
// 获取设置概要信息
|
|
|
|
|
configInfoResp, err := parent.RPC().ServerGroupRPC().FindEnabledServerGroupConfigInfo(parent.AdminContext(), &pb.FindEnabledServerGroupConfigInfoRequest{ServerGroupId: groupId})
|
|
|
|
|
if err != nil {
|
|
|
|
|
return group, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var urlPrefix = "/servers/groups/group/settings"
|
2021-10-07 16:47:14 +08:00
|
|
|
var leftMenuItems = []maps.Map{
|
2021-09-22 19:39:38 +08:00
|
|
|
{
|
2021-10-07 16:47:14 +08:00
|
|
|
"name": "HTTP代理",
|
2021-09-22 19:39:38 +08:00
|
|
|
"url": urlPrefix + "/httpReverseProxy?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "httpReverseProxy",
|
|
|
|
|
"isOn": configInfoResp.HasHTTPReverseProxy,
|
|
|
|
|
},
|
|
|
|
|
{
|
2021-10-07 16:47:14 +08:00
|
|
|
"name": "TCP代理",
|
2021-09-22 19:39:38 +08:00
|
|
|
"url": urlPrefix + "/tcpReverseProxy?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "tcpReverseProxy",
|
|
|
|
|
"isOn": configInfoResp.HasTCPReverseProxy,
|
|
|
|
|
},
|
|
|
|
|
{
|
2021-10-07 16:47:14 +08:00
|
|
|
"name": "UDP代理",
|
2021-09-22 19:39:38 +08:00
|
|
|
"url": urlPrefix + "/udpReverseProxy?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "udpReverseProxy",
|
|
|
|
|
"isOn": configInfoResp.HasUDPReverseProxy,
|
|
|
|
|
},
|
|
|
|
|
}
|
2021-10-07 16:47:14 +08:00
|
|
|
|
|
|
|
|
if teaconst.IsPlus {
|
|
|
|
|
leftMenuItems = append([]maps.Map{
|
|
|
|
|
{
|
|
|
|
|
"name": "Web设置",
|
|
|
|
|
"url": urlPrefix + "/web?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "web",
|
|
|
|
|
"isOn": configInfoResp.HasRootConfig,
|
|
|
|
|
},
|
|
|
|
|
}, leftMenuItems...)
|
|
|
|
|
leftMenuItems = append(leftMenuItems, []maps.Map{
|
|
|
|
|
{
|
|
|
|
|
"name": "-",
|
|
|
|
|
"url": "",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "WAF",
|
|
|
|
|
"url": urlPrefix + "/waf?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "waf",
|
|
|
|
|
"isOn": configInfoResp.HasWAFConfig,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "缓存",
|
|
|
|
|
"url": urlPrefix + "//cache?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "cache",
|
|
|
|
|
"isOn": configInfoResp.HasCacheConfig,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "字符编码",
|
|
|
|
|
"url": urlPrefix + "/charset?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "charset",
|
|
|
|
|
"isOn": configInfoResp.HasCharsetConfig,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "访问日志",
|
|
|
|
|
"url": urlPrefix + "/accessLog?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "accessLog",
|
|
|
|
|
"isOn": configInfoResp.HasAccessLogConfig,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "统计",
|
|
|
|
|
"url": urlPrefix + "/stat?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "stat",
|
|
|
|
|
"isOn": configInfoResp.HasStatConfig,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "内容压缩",
|
|
|
|
|
"url": urlPrefix + "/compression?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "compression",
|
|
|
|
|
"isOn": configInfoResp.HasCompressionConfig,
|
|
|
|
|
},
|
2021-10-10 10:52:58 +08:00
|
|
|
{
|
2022-03-31 14:53:07 +08:00
|
|
|
"name": "自定义页面",
|
2021-10-10 10:52:58 +08:00
|
|
|
"url": urlPrefix + "/pages?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "pages",
|
|
|
|
|
"isOn": configInfoResp.HasPagesConfig,
|
|
|
|
|
},
|
2021-10-07 16:47:14 +08:00
|
|
|
{
|
|
|
|
|
"name": "HTTP Header",
|
|
|
|
|
"url": urlPrefix + "/headers?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "headers",
|
|
|
|
|
"isOn": configInfoResp.HasRequestHeadersConfig || configInfoResp.HasResponseHeadersConfig,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "Websocket",
|
|
|
|
|
"url": urlPrefix + "/websocket?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "websocket",
|
|
|
|
|
"isOn": configInfoResp.HasWebsocketConfig,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "WebP",
|
|
|
|
|
"url": urlPrefix + "/webp?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "webp",
|
|
|
|
|
"isOn": configInfoResp.HasWebPConfig,
|
|
|
|
|
},
|
|
|
|
|
}...)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
leftMenuItems = append(leftMenuItems, maps.Map{
|
|
|
|
|
"name": "-",
|
|
|
|
|
"url": "",
|
|
|
|
|
})
|
|
|
|
|
leftMenuItems = append(leftMenuItems, maps.Map{
|
|
|
|
|
"name": "访客IP地址",
|
|
|
|
|
"url": urlPrefix + "/remoteAddr?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "remoteAddr",
|
|
|
|
|
"isOn": configInfoResp.HasRemoteAddrConfig,
|
|
|
|
|
})
|
2021-12-12 17:07:16 +08:00
|
|
|
|
|
|
|
|
if teaconst.IsPlus {
|
|
|
|
|
leftMenuItems = append(leftMenuItems, maps.Map{
|
|
|
|
|
"name": "请求限制",
|
|
|
|
|
"url": urlPrefix + "/requestLimit?groupId=" + types.String(groupId),
|
|
|
|
|
"isActive": menuItem == "requestLimit",
|
|
|
|
|
"isOn": configInfoResp.HasRequestLimitConfig,
|
|
|
|
|
})
|
|
|
|
|
}
|
2021-10-07 16:47:14 +08:00
|
|
|
parent.Data["leftMenuItems"] = leftMenuItems
|
2021-09-22 19:39:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return group, nil
|
|
|
|
|
}
|