From d82af79e08d236125e7d4e9b49225eb9f4f8403c Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sun, 5 May 2024 11:40:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E7=BD=91=E7=AB=99=E6=97=B6?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=88=9B=E5=BB=BAWebId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/rpc/services/service_server.go | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/internal/rpc/services/service_server.go b/internal/rpc/services/service_server.go index 95a4d566..06d7bf4a 100644 --- a/internal/rpc/services/service_server.go +++ b/internal/rpc/services/service_server.go @@ -32,9 +32,9 @@ type ServerService struct { // CreateServer 创建服务 func (this *ServerService) CreateServer(ctx context.Context, req *pb.CreateServerRequest) (*pb.CreateServerResponse, error) { // 校验请求 - _, userId, err := this.ValidateAdminAndUser(ctx, true) - if err != nil { - return nil, err + adminId, userId, validateErr := this.ValidateAdminAndUser(ctx, true) + if validateErr != nil { + return nil, validateErr } var tx = this.NullTx() @@ -52,7 +52,7 @@ func (this *ServerService) CreateServer(ctx context.Context, req *pb.CreateServe // HTTPS if len(req.HttpsJSON) > 0 { var httpsConfig = &serverconfigs.HTTPSProtocolConfig{} - err = json.Unmarshal(req.HttpsJSON, httpsConfig) + err := json.Unmarshal(req.HttpsJSON, httpsConfig) if err != nil { return nil, err } @@ -67,7 +67,7 @@ func (this *ServerService) CreateServer(ctx context.Context, req *pb.CreateServe // TLS if len(req.TlsJSON) > 0 { var tlsConfig = &serverconfigs.TLSProtocolConfig{} - err = json.Unmarshal(req.TlsJSON, tlsConfig) + err := json.Unmarshal(req.TlsJSON, tlsConfig) if err != nil { return nil, err } @@ -90,7 +90,7 @@ func (this *ServerService) CreateServer(ctx context.Context, req *pb.CreateServe // 服务分组 for _, groupId := range req.ServerGroupIds { - err := models.SharedServerGroupDAO.CheckUserGroup(tx, userId, groupId) + err = models.SharedServerGroupDAO.CheckUserGroup(tx, userId, groupId) if err != nil { return nil, err } @@ -172,7 +172,7 @@ func (this *ServerService) CreateServer(ctx context.Context, req *pb.CreateServe // 域名 if len(req.Name) == 0 && len(req.ServerNamesJSON) > 0 { var serverNames = []*serverconfigs.ServerNameConfig{} - err = json.Unmarshal(req.ServerNamesJSON, &serverNames) + err := json.Unmarshal(req.ServerNamesJSON, &serverNames) if err != nil { return nil, errors.New("decode server names failed: " + err.Error()) } @@ -181,6 +181,15 @@ func (this *ServerService) CreateServer(ctx context.Context, req *pb.CreateServe } } + // 自动创建WebId + if (req.Type == serverconfigs.ServerTypeHTTPWeb || req.Type == serverconfigs.ServerTypeHTTPProxy) && req.WebId <= 0 { + webId, err := models.SharedHTTPWebDAO.CreateWeb(tx, adminId, userId, nil) + if err != nil { + return nil, err + } + req.WebId = webId + } + serverId, err := models.SharedServerDAO.CreateServer(tx, req.AdminId, req.UserId, req.Type, req.Name, req.Description, serverNamesJSON, isAuditing, auditingServerNamesJSON, req.HttpJSON, req.HttpsJSON, req.TcpJSON, req.TlsJSON, req.UdpJSON, req.WebId, req.ReverseProxyJSON, req.NodeClusterId, req.IncludeNodesJSON, req.ExcludeNodesJSON, req.ServerGroupIds, req.UserPlanId) if err != nil { return nil, err