Compare commits

...

10 Commits

Author SHA1 Message Date
刘祥超
f1cf89a78c 提交SQL 2021-11-26 10:45:02 +08:00
刘祥超
d6df5e1c48 提升全局IP名单变更通知速度 2021-11-26 10:39:50 +08:00
刘祥超
049b9b52dd 限制非商业版本从用户端登录 2021-11-24 20:06:43 +08:00
刘祥超
c53259008e 修改用户节点版本为0.2.0 2021-11-24 19:57:15 +08:00
刘祥超
6e0a0a099d 用户端实现UDP设置/优化检查端口是否已被使用API 2021-11-24 19:46:59 +08:00
刘祥超
f4313de55f 缩短统计指标数据保留时间 2021-11-24 19:45:51 +08:00
刘祥超
fd3823255c 服务增加是否合并URL中的多余分隔符选项 2021-11-24 14:49:51 +08:00
刘祥超
79823f4317 版本号改为0.3.6 2021-11-24 14:04:11 +08:00
刘祥超
99fd015066 优化API命名 2021-11-24 12:00:38 +08:00
刘祥超
f63c2d867d 修复流量控制API可能产生的JSON解析错误 2021-11-22 10:39:29 +08:00
19 changed files with 441 additions and 110 deletions

View File

@@ -1,7 +1,7 @@
package teaconst
const (
Version = "0.3.5"
Version = "0.3.6"
ProductName = "Edge API"
ProcessName = "edge-api"
@@ -18,8 +18,8 @@ const (
// 其他节点版本号,用来检测是否有需要升级的节点
NodeVersion = "0.3.5"
UserNodeVersion = "0.0.10"
NodeVersion = "0.3.6"
UserNodeVersion = "0.2.0"
AuthorityNodeVersion = "0.0.2"
MonitorNodeVersion = "0.0.3"
DNSNodeVersion = "0.2.0"

View File

@@ -419,6 +419,9 @@ func (this *HTTPWebDAO) ComposeWebConfig(tx *dbs.Tx, webId int64, cacheMap *util
config.RemoteAddr = remoteAddrConfig
}
// mergeSlashes
config.MergeSlashes = web.MergeSlashes == 1
if cacheMap != nil {
cacheMap.Put(cacheKey, config)
}
@@ -1037,6 +1040,8 @@ func (this *HTTPWebDAO) UpdateWebHostRedirects(tx *dbs.Tx, webId int64, hostRedi
return this.NotifyUpdate(tx, webId)
}
// 通用设置
// FindWebHostRedirects 查找主机跳转
func (this *HTTPWebDAO) FindWebHostRedirects(tx *dbs.Tx, webId int64) ([]byte, error) {
col, err := this.Query(tx).
@@ -1049,6 +1054,22 @@ func (this *HTTPWebDAO) FindWebHostRedirects(tx *dbs.Tx, webId int64) ([]byte, e
return []byte(col), nil
}
// UpdateWebCommon 修改通用设置
func (this *HTTPWebDAO) UpdateWebCommon(tx *dbs.Tx, webId int64, mergeSlashes bool) error {
if webId <= 0 {
return errors.New("invalid webId")
}
var op = NewHTTPWebOperator()
op.Id = webId
op.MergeSlashes = mergeSlashes
err := this.Save(tx, op)
if err != nil {
return err
}
return this.NotifyUpdate(tx, webId)
}
// NotifyUpdate 通知更新
func (this *HTTPWebDAO) NotifyUpdate(tx *dbs.Tx, webId int64) error {
// server

View File

@@ -32,6 +32,7 @@ type HTTPWeb struct {
Auth string `field:"auth"` // 认证策略配置
Webp string `field:"webp"` // WebP配置
RemoteAddr string `field:"remoteAddr"` // 客户端IP配置
MergeSlashes uint8 `field:"mergeSlashes"` // 是否合并路径中的斜杠
}
type HTTPWebOperator struct {
@@ -65,6 +66,7 @@ type HTTPWebOperator struct {
Auth interface{} // 认证策略配置
Webp interface{} // WebP配置
RemoteAddr interface{} // 客户端IP配置
MergeSlashes interface{} // 是否合并路径中的斜杠
}
func NewHTTPWebOperator() *HTTPWebOperator {

View File

@@ -394,6 +394,37 @@ func (this *IPItemDAO) NotifyUpdate(tx *dbs.Tx, itemId int64) error {
return nil
}
if listId == firewallconfigs.GlobalListId {
sourceNodeId, err := this.Query(tx).
Pk(itemId).
Result("sourceNodeId").
FindInt64Col(0)
if err != nil {
return err
}
if sourceNodeId > 0 {
clusterIds, err := SharedNodeDAO.FindEnabledNodeClusterIds(tx, sourceNodeId)
if err != nil {
return err
}
for _, clusterId := range clusterIds {
err = SharedNodeTaskDAO.CreateClusterTask(tx, nodeconfigs.NodeRoleNode, clusterId, NodeTaskTypeIPItemChanged)
if err != nil {
return err
}
}
} else {
clusterIds, err := SharedNodeClusterDAO.FindAllEnabledNodeClusterIds(tx)
for _, clusterId := range clusterIds {
err = SharedNodeTaskDAO.CreateClusterTask(tx, nodeconfigs.NodeRoleNode, clusterId, NodeTaskTypeIPItemChanged)
if err != nil {
return err
}
}
}
return nil
}
httpFirewallPolicyIds, err := SharedHTTPFirewallPolicyDAO.FindEnabledFirewallPolicyIdsWithIPListId(tx, listId)
if err != nil {
return err

View File

@@ -22,7 +22,7 @@ func init() {
var ticker = time.NewTicker(time.Duration(rands.Int(24, 48)) * time.Hour)
go func() {
for range ticker.C {
err := SharedMetricStatDAO.Clean(nil, 120) // 只保留120天
err := SharedMetricStatDAO.Clean(nil, 30) // 只保留30天
if err != nil {
logs.Println("SharedMetricStatDAO: clean expired data failed: " + err.Error())
}

View File

@@ -588,6 +588,22 @@ func (this *NodeClusterDAO) FindAllEnabledNodeClusterIdsWithHTTPFirewallPolicyId
return
}
// FindAllEnabledNodeClusterIds 查找所有可用的集群
func (this *NodeClusterDAO) FindAllEnabledNodeClusterIds(tx *dbs.Tx) ([]int64, error) {
ones, err := this.Query(tx).
State(NodeClusterStateEnabled).
ResultPk().
FindAll()
if err != nil {
return nil, err
}
var result = []int64{}
for _, one := range ones {
result = append(result, int64(one.(*NodeCluster).Id))
}
return result, nil
}
// FindAllEnabledNodeClusterIdsWithCachePolicyId 查找使用缓存策略的所有集群Ids
func (this *NodeClusterDAO) FindAllEnabledNodeClusterIdsWithCachePolicyId(tx *dbs.Tx, cachePolicyId int64) (result []int64, err error) {
ones, err := this.Query(tx).

View File

@@ -652,7 +652,7 @@ func (this *ServerDAO) CountAllEnabledServers(tx *dbs.Tx) (int64, error) {
}
// CountAllEnabledServersMatch 计算所有可用服务数量
func (this *ServerDAO) CountAllEnabledServersMatch(tx *dbs.Tx, groupId int64, keyword string, userId int64, clusterId int64, auditingFlag configutils.BoolState, protocolFamily string) (int64, error) {
func (this *ServerDAO) CountAllEnabledServersMatch(tx *dbs.Tx, groupId int64, keyword string, userId int64, clusterId int64, auditingFlag configutils.BoolState, protocolFamilies []string) (int64, error) {
query := this.Query(tx).
State(ServerStateEnabled)
if groupId > 0 {
@@ -678,16 +678,27 @@ func (this *ServerDAO) CountAllEnabledServersMatch(tx *dbs.Tx, groupId int64, ke
if auditingFlag == configutils.BoolStateYes {
query.Attr("isAuditing", true)
}
if protocolFamily == "http" {
query.Where("(http IS NOT NULL OR https IS NOT NULL)")
} else if protocolFamily == "tcp" {
query.Where("(tcp IS NOT NULL OR tls IS NOT NULL)")
var protocolConds = []string{}
for _, family := range protocolFamilies {
switch family {
case "http":
protocolConds = append(protocolConds, "(http IS NOT NULL OR https IS NOT NULL)")
case "tcp":
protocolConds = append(protocolConds, "(tcp IS NOT NULL OR tls IS NOT NULL)")
case "udp":
protocolConds = append(protocolConds, "(udp IS NOT NULL)")
}
}
if len(protocolConds) > 0 {
query.Where("(" + strings.Join(protocolConds, " OR ") + ")")
}
return query.Count()
}
// ListEnabledServersMatch 列出单页的服务
func (this *ServerDAO) ListEnabledServersMatch(tx *dbs.Tx, offset int64, size int64, groupId int64, keyword string, userId int64, clusterId int64, auditingFlag int32, protocolFamily string) (result []*Server, err error) {
func (this *ServerDAO) ListEnabledServersMatch(tx *dbs.Tx, offset int64, size int64, groupId int64, keyword string, userId int64, clusterId int64, auditingFlag int32, protocolFamilies []string) (result []*Server, err error) {
query := this.Query(tx).
State(ServerStateEnabled).
Offset(offset).
@@ -718,10 +729,19 @@ func (this *ServerDAO) ListEnabledServersMatch(tx *dbs.Tx, offset int64, size in
if auditingFlag == 1 {
query.Attr("isAuditing", true)
}
if protocolFamily == "http" {
query.Where("(http IS NOT NULL OR https IS NOT NULL)")
} else if protocolFamily == "tcp" {
query.Where("(tcp IS NOT NULL OR tls IS NOT NULL)")
var protocolConds = []string{}
for _, family := range protocolFamilies {
switch family {
case "http":
protocolConds = append(protocolConds, "(http IS NOT NULL OR https IS NOT NULL)")
case "tcp":
protocolConds = append(protocolConds, "(tcp IS NOT NULL OR tls IS NOT NULL)")
case "udp":
protocolConds = append(protocolConds, "(udp IS NOT NULL)")
}
}
if len(protocolConds) > 0 {
query.Where("(" + strings.Join(protocolConds, " OR ") + ")")
}
_, err = query.FindAll()
@@ -1536,16 +1556,67 @@ func (this *ServerDAO) FindEnabledServerIdWithReverseProxyId(tx *dbs.Tx, reverse
FindInt64Col(0)
}
// CheckTCPPortIsUsing 检查TCP端口是否被使用
func (this *ServerDAO) CheckTCPPortIsUsing(tx *dbs.Tx, clusterId int64, port int, excludeServerId int64, excludeProtocol string) (bool, error) {
// CheckPortIsUsing 检查端口是否被使用
// protocolFamily支持tcp和udp
func (this *ServerDAO) CheckPortIsUsing(tx *dbs.Tx, clusterId int64, protocolFamily string, port int, excludeServerId int64, excludeProtocol string) (bool, error) {
// 检查是否在别的协议中
if excludeServerId > 0 {
one, err := this.Query(tx).
Pk(excludeServerId).
Result("tcp", "tls", "udp", "http", "https").
Find()
if err != nil {
return false, err
}
if one != nil {
var server = one.(*Server)
for _, protocol := range []string{"http", "https", "tcp", "tls", "udp"} {
if protocol == excludeProtocol {
continue
}
switch protocol {
case "http":
if protocolFamily == "tcp" && lists.ContainsInt(server.DecodeHTTPPorts(), port) {
return true, nil
}
case "https":
if protocolFamily == "tcp" && lists.ContainsInt(server.DecodeHTTPSPorts(), port) {
return true, nil
}
case "tcp":
if protocolFamily == "tcp" && lists.ContainsInt(server.DecodeTCPPorts(), port) {
return true, nil
}
case "tls":
if protocolFamily == "tcp" && lists.ContainsInt(server.DecodeTLSPorts(), port) {
return true, nil
}
case "udp":
// 不需要判断
}
}
}
}
// 其他服务中
query := this.Query(tx).
Attr("clusterId", clusterId).
State(ServerStateEnabled).
Param("port", types.String(port))
if excludeServerId <= 0 {
query.Where("JSON_CONTAINS(tcpPorts, :port)")
switch protocolFamily {
case "tcp", "http", "":
query.Where("JSON_CONTAINS(tcpPorts, :port)")
case "udp":
query.Where("JSON_CONTAINS(udpPorts, :port)")
}
} else {
query.Where("(id!=:serverId AND JSON_CONTAINS(tcpPorts, :port))")
switch protocolFamily {
case "tcp", "http", "":
query.Where("(id!=:serverId AND JSON_CONTAINS(tcpPorts, :port))")
case "udp":
query.Where("(id!=:serverId AND JSON_CONTAINS(udpPorts, :port))")
}
query.Param("serverId", excludeServerId)
}
return query.
@@ -1854,9 +1925,11 @@ func (this *ServerDAO) FindServerTrafficLimitConfig(tx *dbs.Tx, serverId int64,
var trafficLimit = serverOne.(*Server).TrafficLimit
err = json.Unmarshal([]byte(trafficLimit), limit)
if err != nil {
return nil, err
if len(trafficLimit) > 0 {
err = json.Unmarshal([]byte(trafficLimit), limit)
if err != nil {
return nil, err
}
}
if cacheMap != nil {

View File

@@ -3,6 +3,7 @@ package models
import (
"encoding/json"
"github.com/TeaOSLab/EdgeAPI/internal/remotelogs"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
)
// DecodeGroupIds 解析服务所属分组ID
@@ -19,3 +20,108 @@ func (this *Server) DecodeGroupIds() []int64 {
}
return result
}
// DecodeHTTPPorts 获取HTTP所有端口
func (this *Server) DecodeHTTPPorts() (ports []int) {
if len(this.Http) > 0 && this.Http != "null" {
config := &serverconfigs.HTTPProtocolConfig{}
err := json.Unmarshal([]byte(this.Http), config)
if err != nil {
return nil
}
err = config.Init()
if err != nil {
return nil
}
for _, listen := range config.Listen {
for i := listen.MinPort; i <= listen.MaxPort; i++ {
ports = append(ports, i)
}
}
}
return
}
// DecodeHTTPSPorts 获取HTTPS所有端口
func (this *Server) DecodeHTTPSPorts() (ports []int) {
if len(this.Https) > 0 && this.Https != "null" {
config := &serverconfigs.HTTPSProtocolConfig{}
err := json.Unmarshal([]byte(this.Https), config)
if err != nil {
return nil
}
err = config.Init()
if err != nil {
return nil
}
for _, listen := range config.Listen {
for i := listen.MinPort; i <= listen.MaxPort; i++ {
ports = append(ports, i)
}
}
}
return
}
// DecodeTCPPorts 获取TCP所有端口
func (this *Server) DecodeTCPPorts() (ports []int) {
if len(this.Tcp) > 0 && this.Tcp != "null" {
config := &serverconfigs.TCPProtocolConfig{}
err := json.Unmarshal([]byte(this.Tcp), config)
if err != nil {
return nil
}
err = config.Init()
if err != nil {
return nil
}
for _, listen := range config.Listen {
for i := listen.MinPort; i <= listen.MaxPort; i++ {
ports = append(ports, i)
}
}
}
return
}
// DecodeTLSPorts 获取TLS所有端口
func (this *Server) DecodeTLSPorts() (ports []int) {
if len(this.Tls) > 0 && this.Tls != "null" {
config := &serverconfigs.TLSProtocolConfig{}
err := json.Unmarshal([]byte(this.Tls), config)
if err != nil {
return nil
}
err = config.Init()
if err != nil {
return nil
}
for _, listen := range config.Listen {
for i := listen.MinPort; i <= listen.MaxPort; i++ {
ports = append(ports, i)
}
}
}
return
}
// DecodeUDPPorts 获取UDP所有端口
func (this *Server) DecodeUDPPorts() (ports []int) {
if len(this.Udp) > 0 && this.Udp != "null" {
config := &serverconfigs.UDPProtocolConfig{}
err := json.Unmarshal([]byte(this.Udp), config)
if err != nil {
return nil
}
err = config.Init()
if err != nil {
return nil
}
for _, listen := range config.Listen {
for i := listen.MinPort; i <= listen.MaxPort; i++ {
ports = append(ports, i)
}
}
}
return
}

View File

@@ -29,7 +29,7 @@ func init() {
})
}
// 增加数量
// IncreaseMonthlyCount 增加数量
func (this *ServerRegionCountryMonthlyStatDAO) IncreaseMonthlyCount(tx *dbs.Tx, serverId int64, countryId int64, month string, count int64) error {
if len(month) != 6 {
return errors.New("invalid month '" + month + "'")
@@ -50,7 +50,7 @@ func (this *ServerRegionCountryMonthlyStatDAO) IncreaseMonthlyCount(tx *dbs.Tx,
return nil
}
// 查找单页数据
// ListStats 查找单页数据
func (this *ServerRegionCountryMonthlyStatDAO) ListStats(tx *dbs.Tx, serverId int64, month string, offset int64, size int64) (result []*ServerRegionCountryMonthlyStat, err error) {
query := this.Query(tx).
Attr("serverId", serverId).

View File

@@ -21,15 +21,25 @@ var (
Description: "用户可以配置访问日志转发到自定义的API",
},
{
Name: "负载均衡",
Name: "TCP负载均衡",
Code: "server.tcp",
Description: "用户可以添加TCP/TLS负载均衡服务",
},
{
Name: "自定义负载均衡端口",
Name: "自定义TCP负载均衡端口",
Code: "server.tcp.port",
Description: "用户可以自定义TCP端口",
},
{
Name: "UDP负载均衡",
Code: "server.udp",
Description: "用户可以添加UDP负载均衡服务",
},
{
Name: "自定义UDP负载均衡端口",
Code: "server.udp.port",
Description: "用户可以自定义UDP端口",
},
{
Name: "开启WAF",
Code: "server.waf",
@@ -43,7 +53,7 @@ var (
}
)
// 用户功能
// UserFeature 用户功能
type UserFeature struct {
Name string `json:"name"`
Code string `json:"code"`
@@ -54,12 +64,12 @@ func (this *UserFeature) ToPB() *pb.UserFeature {
return &pb.UserFeature{Name: this.Name, Code: this.Code, Description: this.Description}
}
// 所有功能列表
// FindAllUserFeatures 所有功能列表
func FindAllUserFeatures() []*UserFeature {
return allUserFeatures
}
// 查询单个功能
// FindUserFeature 查询单个功能
func FindUserFeature(code string) *UserFeature {
for _, feature := range allUserFeatures {
if feature.Code == code {

View File

@@ -27,7 +27,7 @@ func (this *AuthorityNodeService) CreateAuthorityNode(ctx context.Context, req *
return nil, err
}
return &pb.CreateAuthorityNodeResponse{NodeId: nodeId}, nil
return &pb.CreateAuthorityNodeResponse{AuthorityNodeId: nodeId}, nil
}
// UpdateAuthorityNode 修改认证节点
@@ -39,7 +39,7 @@ func (this *AuthorityNodeService) UpdateAuthorityNode(ctx context.Context, req *
tx := this.NullTx()
err = authority.SharedAuthorityNodeDAO.UpdateAuthorityNode(tx, req.NodeId, req.Name, req.Description, req.IsOn)
err = authority.SharedAuthorityNodeDAO.UpdateAuthorityNode(tx, req.AuthorityNodeId, req.Name, req.Description, req.IsOn)
if err != nil {
return nil, err
}
@@ -56,7 +56,7 @@ func (this *AuthorityNodeService) DeleteAuthorityNode(ctx context.Context, req *
tx := this.NullTx()
err = authority.SharedAuthorityNodeDAO.DisableAuthorityNode(tx, req.NodeId)
err = authority.SharedAuthorityNodeDAO.DisableAuthorityNode(tx, req.AuthorityNodeId)
if err != nil {
return nil, err
}
@@ -90,7 +90,7 @@ func (this *AuthorityNodeService) FindAllEnabledAuthorityNodes(ctx context.Conte
})
}
return &pb.FindAllEnabledAuthorityNodesResponse{Nodes: result}, nil
return &pb.FindAllEnabledAuthorityNodesResponse{AuthorityNodes: result}, nil
}
// CountAllEnabledAuthorityNodes 计算认证节点数量
@@ -137,7 +137,7 @@ func (this *AuthorityNodeService) ListEnabledAuthorityNodes(ctx context.Context,
})
}
return &pb.ListEnabledAuthorityNodesResponse{Nodes: result}, nil
return &pb.ListEnabledAuthorityNodesResponse{AuthorityNodes: result}, nil
}
// FindEnabledAuthorityNode 根据ID查找节点
@@ -149,13 +149,13 @@ func (this *AuthorityNodeService) FindEnabledAuthorityNode(ctx context.Context,
tx := this.NullTx()
node, err := authority.SharedAuthorityNodeDAO.FindEnabledAuthorityNode(tx, req.NodeId)
node, err := authority.SharedAuthorityNodeDAO.FindEnabledAuthorityNode(tx, req.AuthorityNodeId)
if err != nil {
return nil, err
}
if node == nil {
return &pb.FindEnabledAuthorityNodeResponse{Node: nil}, nil
return &pb.FindEnabledAuthorityNodeResponse{AuthorityNode: nil}, nil
}
result := &pb.AuthorityNode{
@@ -166,7 +166,7 @@ func (this *AuthorityNodeService) FindEnabledAuthorityNode(ctx context.Context,
Name: node.Name,
Description: node.Description,
}
return &pb.FindEnabledAuthorityNodeResponse{Node: result}, nil
return &pb.FindEnabledAuthorityNodeResponse{AuthorityNode: result}, nil
}
// FindCurrentAuthorityNode 获取当前认证节点的版本
@@ -193,7 +193,7 @@ func (this *AuthorityNodeService) FindCurrentAuthorityNode(ctx context.Context,
}
if node == nil {
return &pb.FindCurrentAuthorityNodeResponse{Node: nil}, nil
return &pb.FindCurrentAuthorityNodeResponse{AuthorityNode: nil}, nil
}
result := &pb.AuthorityNode{
@@ -204,7 +204,7 @@ func (this *AuthorityNodeService) FindCurrentAuthorityNode(ctx context.Context,
Name: node.Name,
Description: node.Description,
}
return &pb.FindCurrentAuthorityNodeResponse{Node: result}, nil
return &pb.FindCurrentAuthorityNodeResponse{AuthorityNode: result}, nil
}
// UpdateAuthorityNodeStatus 更新节点状态
@@ -215,8 +215,8 @@ func (this *AuthorityNodeService) UpdateAuthorityNodeStatus(ctx context.Context,
return nil, err
}
if req.NodeId > 0 {
nodeId = req.NodeId
if req.AuthorityNodeId > 0 {
nodeId = req.AuthorityNodeId
}
if nodeId <= 0 {

View File

@@ -29,7 +29,7 @@ func (this *HTTPWebService) CreateHTTPWeb(ctx context.Context, req *pb.CreateHTT
return nil, err
}
return &pb.CreateHTTPWebResponse{WebId: webId}, nil
return &pb.CreateHTTPWebResponse{HttpWebId: webId}, nil
}
// FindEnabledHTTPWeb 查找Web配置
@@ -42,7 +42,7 @@ func (this *HTTPWebService) FindEnabledHTTPWeb(ctx context.Context, req *pb.Find
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -50,19 +50,19 @@ func (this *HTTPWebService) FindEnabledHTTPWeb(ctx context.Context, req *pb.Find
tx := this.NullTx()
web, err := models.SharedHTTPWebDAO.FindEnabledHTTPWeb(tx, req.WebId)
web, err := models.SharedHTTPWebDAO.FindEnabledHTTPWeb(tx, req.HttpWebId)
if err != nil {
return nil, err
}
if web == nil {
return &pb.FindEnabledHTTPWebResponse{Web: nil}, nil
return &pb.FindEnabledHTTPWebResponse{HttpWeb: nil}, nil
}
result := &pb.HTTPWeb{}
result.Id = int64(web.Id)
result.IsOn = web.IsOn == 1
return &pb.FindEnabledHTTPWebResponse{Web: result}, nil
return &pb.FindEnabledHTTPWebResponse{HttpWeb: result}, nil
}
// FindEnabledHTTPWebConfig 查找Web配置
@@ -75,7 +75,7 @@ func (this *HTTPWebService) FindEnabledHTTPWebConfig(ctx context.Context, req *p
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -83,7 +83,7 @@ func (this *HTTPWebService) FindEnabledHTTPWebConfig(ctx context.Context, req *p
tx := this.NullTx()
config, err := models.SharedHTTPWebDAO.ComposeWebConfig(tx, req.WebId, nil)
config, err := models.SharedHTTPWebDAO.ComposeWebConfig(tx, req.HttpWebId, nil)
if err != nil {
return nil, err
}
@@ -92,7 +92,7 @@ func (this *HTTPWebService) FindEnabledHTTPWebConfig(ctx context.Context, req *p
if err != nil {
return nil, err
}
return &pb.FindEnabledHTTPWebConfigResponse{WebJSON: configJSON}, nil
return &pb.FindEnabledHTTPWebConfigResponse{HttpWebJSON: configJSON}, nil
}
// UpdateHTTPWeb 修改Web配置
@@ -105,7 +105,7 @@ func (this *HTTPWebService) UpdateHTTPWeb(ctx context.Context, req *pb.UpdateHTT
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -113,7 +113,7 @@ func (this *HTTPWebService) UpdateHTTPWeb(ctx context.Context, req *pb.UpdateHTT
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWeb(tx, req.WebId, req.RootJSON)
err = models.SharedHTTPWebDAO.UpdateWeb(tx, req.HttpWebId, req.RootJSON)
if err != nil {
return nil, err
}
@@ -131,7 +131,7 @@ func (this *HTTPWebService) UpdateHTTPWebCompression(ctx context.Context, req *p
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -139,7 +139,7 @@ func (this *HTTPWebService) UpdateHTTPWebCompression(ctx context.Context, req *p
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebCompression(tx, req.WebId, req.CompressionJSON)
err = models.SharedHTTPWebDAO.UpdateWebCompression(tx, req.HttpWebId, req.CompressionJSON)
if err != nil {
return nil, err
}
@@ -157,7 +157,7 @@ func (this *HTTPWebService) UpdateHTTPWebWebP(ctx context.Context, req *pb.Updat
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -165,7 +165,7 @@ func (this *HTTPWebService) UpdateHTTPWebWebP(ctx context.Context, req *pb.Updat
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebWebP(tx, req.WebId, req.WebpJSON)
err = models.SharedHTTPWebDAO.UpdateWebWebP(tx, req.HttpWebId, req.WebpJSON)
if err != nil {
return nil, err
}
@@ -183,14 +183,14 @@ func (this *HTTPWebService) UpdateHTTPWebRemoteAddr(ctx context.Context, req *pb
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
}
var tx = this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebRemoteAddr(tx, req.WebId, req.RemoteAddrJSON)
err = models.SharedHTTPWebDAO.UpdateWebRemoteAddr(tx, req.HttpWebId, req.RemoteAddrJSON)
if err != nil {
return nil, err
}
@@ -208,7 +208,7 @@ func (this *HTTPWebService) UpdateHTTPWebCharset(ctx context.Context, req *pb.Up
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -216,7 +216,7 @@ func (this *HTTPWebService) UpdateHTTPWebCharset(ctx context.Context, req *pb.Up
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebCharset(tx, req.WebId, req.CharsetJSON)
err = models.SharedHTTPWebDAO.UpdateWebCharset(tx, req.HttpWebId, req.CharsetJSON)
if err != nil {
return nil, err
}
@@ -233,7 +233,7 @@ func (this *HTTPWebService) UpdateHTTPWebRequestHeader(ctx context.Context, req
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -241,7 +241,7 @@ func (this *HTTPWebService) UpdateHTTPWebRequestHeader(ctx context.Context, req
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebRequestHeaderPolicy(tx, req.WebId, req.HeaderJSON)
err = models.SharedHTTPWebDAO.UpdateWebRequestHeaderPolicy(tx, req.HttpWebId, req.HeaderJSON)
if err != nil {
return nil, err
}
@@ -259,7 +259,7 @@ func (this *HTTPWebService) UpdateHTTPWebResponseHeader(ctx context.Context, req
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -267,7 +267,7 @@ func (this *HTTPWebService) UpdateHTTPWebResponseHeader(ctx context.Context, req
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebResponseHeaderPolicy(tx, req.WebId, req.HeaderJSON)
err = models.SharedHTTPWebDAO.UpdateWebResponseHeaderPolicy(tx, req.HttpWebId, req.HeaderJSON)
if err != nil {
return nil, err
}
@@ -285,7 +285,7 @@ func (this *HTTPWebService) UpdateHTTPWebShutdown(ctx context.Context, req *pb.U
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -293,7 +293,7 @@ func (this *HTTPWebService) UpdateHTTPWebShutdown(ctx context.Context, req *pb.U
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebShutdown(tx, req.WebId, req.ShutdownJSON)
err = models.SharedHTTPWebDAO.UpdateWebShutdown(tx, req.HttpWebId, req.ShutdownJSON)
if err != nil {
return nil, err
}
@@ -310,7 +310,7 @@ func (this *HTTPWebService) UpdateHTTPWebPages(ctx context.Context, req *pb.Upda
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -318,7 +318,7 @@ func (this *HTTPWebService) UpdateHTTPWebPages(ctx context.Context, req *pb.Upda
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebPages(tx, req.WebId, req.PagesJSON)
err = models.SharedHTTPWebDAO.UpdateWebPages(tx, req.HttpWebId, req.PagesJSON)
if err != nil {
return nil, err
}
@@ -335,7 +335,7 @@ func (this *HTTPWebService) UpdateHTTPWebAccessLog(ctx context.Context, req *pb.
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -343,7 +343,7 @@ func (this *HTTPWebService) UpdateHTTPWebAccessLog(ctx context.Context, req *pb.
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebAccessLogConfig(tx, req.WebId, req.AccessLogJSON)
err = models.SharedHTTPWebDAO.UpdateWebAccessLogConfig(tx, req.HttpWebId, req.AccessLogJSON)
if err != nil {
return nil, err
}
@@ -360,7 +360,7 @@ func (this *HTTPWebService) UpdateHTTPWebStat(ctx context.Context, req *pb.Updat
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -368,7 +368,7 @@ func (this *HTTPWebService) UpdateHTTPWebStat(ctx context.Context, req *pb.Updat
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebStat(tx, req.WebId, req.StatJSON)
err = models.SharedHTTPWebDAO.UpdateWebStat(tx, req.HttpWebId, req.StatJSON)
if err != nil {
return nil, err
}
@@ -385,7 +385,7 @@ func (this *HTTPWebService) UpdateHTTPWebCache(ctx context.Context, req *pb.Upda
if userId > 0 {
// 检查权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -393,7 +393,7 @@ func (this *HTTPWebService) UpdateHTTPWebCache(ctx context.Context, req *pb.Upda
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebCache(tx, req.WebId, req.CacheJSON)
err = models.SharedHTTPWebDAO.UpdateWebCache(tx, req.HttpWebId, req.CacheJSON)
if err != nil {
return nil, err
}
@@ -411,7 +411,7 @@ func (this *HTTPWebService) UpdateHTTPWebFirewall(ctx context.Context, req *pb.U
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -419,7 +419,7 @@ func (this *HTTPWebService) UpdateHTTPWebFirewall(ctx context.Context, req *pb.U
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebFirewall(tx, req.WebId, req.FirewallJSON)
err = models.SharedHTTPWebDAO.UpdateWebFirewall(tx, req.HttpWebId, req.FirewallJSON)
if err != nil {
return nil, err
}
@@ -437,7 +437,7 @@ func (this *HTTPWebService) UpdateHTTPWebLocations(ctx context.Context, req *pb.
if userId > 0 {
// 检查用户权限
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -445,7 +445,7 @@ func (this *HTTPWebService) UpdateHTTPWebLocations(ctx context.Context, req *pb.
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebLocations(tx, req.WebId, req.LocationsJSON)
err = models.SharedHTTPWebDAO.UpdateWebLocations(tx, req.HttpWebId, req.LocationsJSON)
if err != nil {
return nil, err
}
@@ -463,7 +463,7 @@ func (this *HTTPWebService) UpdateHTTPWebRedirectToHTTPS(ctx context.Context, re
// 检查权限
if userId > 0 {
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -471,7 +471,7 @@ func (this *HTTPWebService) UpdateHTTPWebRedirectToHTTPS(ctx context.Context, re
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebRedirectToHTTPS(tx, req.WebId, req.RedirectToHTTPSJSON)
err = models.SharedHTTPWebDAO.UpdateWebRedirectToHTTPS(tx, req.HttpWebId, req.RedirectToHTTPSJSON)
if err != nil {
return nil, err
}
@@ -487,7 +487,7 @@ func (this *HTTPWebService) UpdateHTTPWebWebsocket(ctx context.Context, req *pb.
}
if userId > 0 {
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -495,7 +495,7 @@ func (this *HTTPWebService) UpdateHTTPWebWebsocket(ctx context.Context, req *pb.
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebsocket(tx, req.WebId, req.WebsocketJSON)
err = models.SharedHTTPWebDAO.UpdateWebsocket(tx, req.HttpWebId, req.WebsocketJSON)
if err != nil {
return nil, err
}
@@ -511,7 +511,7 @@ func (this *HTTPWebService) UpdateHTTPWebFastcgi(ctx context.Context, req *pb.Up
}
if userId > 0 {
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -519,7 +519,7 @@ func (this *HTTPWebService) UpdateHTTPWebFastcgi(ctx context.Context, req *pb.Up
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebFastcgi(tx, req.WebId, req.FastcgiJSON)
err = models.SharedHTTPWebDAO.UpdateWebFastcgi(tx, req.HttpWebId, req.FastcgiJSON)
if err != nil {
return nil, err
}
@@ -535,7 +535,7 @@ func (this *HTTPWebService) UpdateHTTPWebRewriteRules(ctx context.Context, req *
}
if userId > 0 {
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -543,7 +543,7 @@ func (this *HTTPWebService) UpdateHTTPWebRewriteRules(ctx context.Context, req *
tx := this.NullTx()
err = models.SharedHTTPWebDAO.UpdateWebRewriteRules(tx, req.WebId, req.RewriteRulesJSON)
err = models.SharedHTTPWebDAO.UpdateWebRewriteRules(tx, req.HttpWebId, req.RewriteRulesJSON)
if err != nil {
return nil, err
}
@@ -559,7 +559,7 @@ func (this *HTTPWebService) UpdateHTTPWebHostRedirects(ctx context.Context, req
}
if userId > 0 {
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -583,7 +583,7 @@ func (this *HTTPWebService) UpdateHTTPWebHostRedirects(ctx context.Context, req
}
var tx *dbs.Tx
err = models.SharedHTTPWebDAO.UpdateWebHostRedirects(tx, req.WebId, hostRedirects)
err = models.SharedHTTPWebDAO.UpdateWebHostRedirects(tx, req.HttpWebId, hostRedirects)
if err != nil {
return nil, err
}
@@ -599,14 +599,14 @@ func (this *HTTPWebService) FindHTTPWebHostRedirects(ctx context.Context, req *p
}
if userId > 0 {
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
}
var tx *dbs.Tx
redirectsJSON, err := models.SharedHTTPWebDAO.FindWebHostRedirects(tx, req.WebId)
redirectsJSON, err := models.SharedHTTPWebDAO.FindWebHostRedirects(tx, req.HttpWebId)
if err != nil {
return nil, err
}
@@ -622,16 +622,41 @@ func (this *HTTPWebService) UpdateHTTPWebAuth(ctx context.Context, req *pb.Updat
}
if userId > 0 {
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.WebId)
err = models.SharedHTTPWebDAO.CheckUserWeb(nil, userId, req.HttpWebId)
if err != nil {
return nil, err
}
}
var tx *dbs.Tx
err = models.SharedHTTPWebDAO.UpdateWebAuth(tx, req.WebId, req.AuthJSON)
err = models.SharedHTTPWebDAO.UpdateWebAuth(tx, req.HttpWebId, req.AuthJSON)
if err != nil {
return nil, err
}
return this.Success()
}
// UpdateHTTPWebCommon 更改通用设置
func (this *HTTPWebService) UpdateHTTPWebCommon(ctx context.Context, req *pb.UpdateHTTPWebCommonRequest) (*pb.RPCSuccess, error) {
// 校验请求
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
if err != nil {
return nil, err
}
var tx = this.NullTx()
if userId > 0 {
err = models.SharedHTTPWebDAO.CheckUserWeb(tx, userId, req.HttpWebId)
if err != nil {
return nil, err
}
}
err = models.SharedHTTPWebDAO.UpdateWebCommon(tx, req.HttpWebId, req.MergeSlashes)
if err != nil {
return nil, err
}
return this.Success()
}

View File

@@ -27,7 +27,7 @@ func (this *MonitorNodeService) CreateMonitorNode(ctx context.Context, req *pb.C
return nil, err
}
return &pb.CreateMonitorNodeResponse{NodeId: nodeId}, nil
return &pb.CreateMonitorNodeResponse{MonitorNodeId: nodeId}, nil
}
// UpdateMonitorNode 修改监控节点
@@ -39,7 +39,7 @@ func (this *MonitorNodeService) UpdateMonitorNode(ctx context.Context, req *pb.U
tx := this.NullTx()
err = models.SharedMonitorNodeDAO.UpdateMonitorNode(tx, req.NodeId, req.Name, req.Description, req.IsOn)
err = models.SharedMonitorNodeDAO.UpdateMonitorNode(tx, req.MonitorNodeId, req.Name, req.Description, req.IsOn)
if err != nil {
return nil, err
}
@@ -56,7 +56,7 @@ func (this *MonitorNodeService) DeleteMonitorNode(ctx context.Context, req *pb.D
tx := this.NullTx()
err = models.SharedMonitorNodeDAO.DisableMonitorNode(tx, req.NodeId)
err = models.SharedMonitorNodeDAO.DisableMonitorNode(tx, req.MonitorNodeId)
if err != nil {
return nil, err
}
@@ -90,7 +90,7 @@ func (this *MonitorNodeService) FindAllEnabledMonitorNodes(ctx context.Context,
})
}
return &pb.FindAllEnabledMonitorNodesResponse{Nodes: result}, nil
return &pb.FindAllEnabledMonitorNodesResponse{MonitorNodes: result}, nil
}
// CountAllEnabledMonitorNodes 计算监控节点数量
@@ -137,7 +137,7 @@ func (this *MonitorNodeService) ListEnabledMonitorNodes(ctx context.Context, req
})
}
return &pb.ListEnabledMonitorNodesResponse{Nodes: result}, nil
return &pb.ListEnabledMonitorNodesResponse{MonitorNodes: result}, nil
}
// FindEnabledMonitorNode 根据ID查找节点
@@ -149,13 +149,13 @@ func (this *MonitorNodeService) FindEnabledMonitorNode(ctx context.Context, req
tx := this.NullTx()
node, err := models.SharedMonitorNodeDAO.FindEnabledMonitorNode(tx, req.NodeId)
node, err := models.SharedMonitorNodeDAO.FindEnabledMonitorNode(tx, req.MonitorNodeId)
if err != nil {
return nil, err
}
if node == nil {
return &pb.FindEnabledMonitorNodeResponse{Node: nil}, nil
return &pb.FindEnabledMonitorNodeResponse{MonitorNode: nil}, nil
}
result := &pb.MonitorNode{
@@ -166,7 +166,7 @@ func (this *MonitorNodeService) FindEnabledMonitorNode(ctx context.Context, req
Name: node.Name,
Description: node.Description,
}
return &pb.FindEnabledMonitorNodeResponse{Node: result}, nil
return &pb.FindEnabledMonitorNodeResponse{MonitorNode: result}, nil
}
// FindCurrentMonitorNode 获取当前监控节点的版本
@@ -193,7 +193,7 @@ func (this *MonitorNodeService) FindCurrentMonitorNode(ctx context.Context, req
}
if node == nil {
return &pb.FindCurrentMonitorNodeResponse{Node: nil}, nil
return &pb.FindCurrentMonitorNodeResponse{MonitorNode: nil}, nil
}
result := &pb.MonitorNode{
@@ -204,7 +204,7 @@ func (this *MonitorNodeService) FindCurrentMonitorNode(ctx context.Context, req
Name: node.Name,
Description: node.Description,
}
return &pb.FindCurrentMonitorNodeResponse{Node: result}, nil
return &pb.FindCurrentMonitorNodeResponse{MonitorNode: result}, nil
}
// UpdateMonitorNodeStatus 更新节点状态
@@ -215,8 +215,8 @@ func (this *MonitorNodeService) UpdateMonitorNodeStatus(ctx context.Context, req
return nil, err
}
if req.NodeId > 0 {
nodeId = req.NodeId
if req.MonitorNodeId > 0 {
nodeId = req.MonitorNodeId
}
if nodeId <= 0 {

View File

@@ -905,7 +905,7 @@ func (this *NodeClusterService) FindFreePortInNodeCluster(ctx context.Context, r
continue
}
isUsing, err := models.SharedServerDAO.CheckTCPPortIsUsing(tx, req.NodeClusterId, port, 0, "")
isUsing, err := models.SharedServerDAO.CheckPortIsUsing(tx, req.NodeClusterId, req.ProtocolFamily, port, 0, "")
if err != nil {
return nil, err
}
@@ -925,7 +925,7 @@ func (this *NodeClusterService) CheckPortIsUsingInNodeCluster(ctx context.Contex
}
var tx = this.NullTx()
isUsing, err := models.SharedServerDAO.CheckTCPPortIsUsing(tx, req.NodeClusterId, int(req.Port), req.ExcludeServerId, req.ExcludeProtocol)
isUsing, err := models.SharedServerDAO.CheckPortIsUsing(tx, req.NodeClusterId, req.ProtocolFamily, int(req.Port), req.ExcludeServerId, req.ExcludeProtocol)
if err != nil {
return nil, err
}

View File

@@ -330,11 +330,18 @@ func (this *ServerService) UpdateServerUnix(ctx context.Context, req *pb.UpdateS
// UpdateServerUDP 修改UDP服务
func (this *ServerService) UpdateServerUDP(ctx context.Context, req *pb.UpdateServerUDPRequest) (*pb.RPCSuccess, error) {
// 校验请求
_, err := this.ValidateAdmin(ctx, 0)
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
if err != nil {
return nil, err
}
if userId > 0 {
err = models.SharedServerDAO.CheckUserServer(nil, userId, req.ServerId)
if err != nil {
return nil, err
}
}
if req.ServerId <= 0 {
return nil, errors.New("invalid serverId")
}
@@ -567,7 +574,7 @@ func (this *ServerService) CountAllEnabledServersMatch(ctx context.Context, req
tx := this.NullTx()
count, err := models.SharedServerDAO.CountAllEnabledServersMatch(tx, req.ServerGroupId, req.Keyword, req.UserId, req.NodeClusterId, types.Int8(req.AuditingFlag), req.ProtocolFamily)
count, err := models.SharedServerDAO.CountAllEnabledServersMatch(tx, req.ServerGroupId, req.Keyword, req.UserId, req.NodeClusterId, types.Int8(req.AuditingFlag), utils.SplitStrings(req.ProtocolFamily, ","))
if err != nil {
return nil, err
}
@@ -585,7 +592,7 @@ func (this *ServerService) ListEnabledServersMatch(ctx context.Context, req *pb.
tx := this.NullTx()
servers, err := models.SharedServerDAO.ListEnabledServersMatch(tx, req.Offset, req.Size, req.ServerGroupId, req.Keyword, req.UserId, req.NodeClusterId, req.AuditingFlag, req.ProtocolFamily)
servers, err := models.SharedServerDAO.ListEnabledServersMatch(tx, req.Offset, req.Size, req.ServerGroupId, req.Keyword, req.UserId, req.NodeClusterId, req.AuditingFlag, utils.SplitStrings(req.ProtocolFamily, ","))
if err != nil {
return nil, err
}

View File

@@ -3,6 +3,7 @@ package services
import (
"context"
"encoding/json"
teaconst "github.com/TeaOSLab/EdgeAPI/internal/const"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
"github.com/TeaOSLab/EdgeAPI/internal/utils"
@@ -221,11 +222,19 @@ func (this *UserService) CheckUserUsername(ctx context.Context, req *pb.CheckUse
// LoginUser 登录
func (this *UserService) LoginUser(ctx context.Context, req *pb.LoginUserRequest) (*pb.LoginUserResponse, error) {
_, _, _, err := rpcutils.ValidateRequest(ctx)
_, err := this.ValidateUserNode(ctx)
if err != nil {
return nil, err
}
if !teaconst.IsPlus {
return &pb.LoginUserResponse{
UserId: 0,
IsOk: false,
Message: "你正在使用的系统版本为非商业版本或已过期,请管理员续费后才能登录",
}, nil
}
if len(req.Username) == 0 || len(req.Password) == 0 {
return &pb.LoginUserResponse{
UserId: 0,
@@ -310,7 +319,7 @@ func (this *UserService) ComposeUserDashboard(ctx context.Context, req *pb.Compo
tx := this.NullTx()
// 网站数量
countServers, err := models.SharedServerDAO.CountAllEnabledServersMatch(tx, 0, "", req.UserId, 0, configutils.BoolStateAll, "")
countServers, err := models.SharedServerDAO.CountAllEnabledServersMatch(tx, 0, "", req.UserId, 0, configutils.BoolStateAll, []string{})
if err != nil {
return nil, err
}

File diff suppressed because one or more lines are too long

21
internal/utils/strings.go Normal file
View File

@@ -0,0 +1,21 @@
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
package utils
import "strings"
// SplitStrings 分隔字符串
// 忽略其中为空的片段
func SplitStrings(s string, glue string) []string {
var result = []string{}
if len(s) > 0 {
for _, p := range strings.Split(s, glue) {
p = strings.TrimSpace(p)
if len(p) > 0 {
result = append(result, p)
}
}
}
return result
}

View File

@@ -0,0 +1,10 @@
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
package utils
import "testing"
func TestSplitStrings(t *testing.T) {
t.Log(SplitStrings("a, b, c", ","))
t.Log(SplitStrings("a, b, c, ", ","))
}