From 76035dc3c258f7e46770d4108d2a29992a7319d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Sat, 6 Feb 2021 21:52:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E6=88=96=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=9F=9F=E5=90=8D=E6=97=B6=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E5=9F=9F=E5=90=8D=E6=98=AF=E5=90=A6=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/actions/default/servers/create.go | 17 +++++++++++ .../server/settings/serverNames/index.go | 29 +++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/internal/web/actions/default/servers/create.go b/internal/web/actions/default/servers/create.go index c87b2251..0c24df83 100644 --- a/internal/web/actions/default/servers/create.go +++ b/internal/web/actions/default/servers/create.go @@ -10,6 +10,7 @@ import ( "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/sslconfigs" "github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/maps" + "strings" ) type CreateAction struct { @@ -215,6 +216,22 @@ func (this *CreateAction) RunPost(params struct { if err != nil { this.Fail("域名解析失败:" + err.Error()) } + + // 检查域名是否已经存在 + allServerNames := serverconfigs.PlainServerNames(serverNames) + if len(allServerNames) > 0 { + dupResp, err := this.RPC().ServerRPC().CheckServerNameDuplicationInNodeCluster(this.AdminContext(), &pb.CheckServerNameDuplicationInNodeClusterRequest{ + ServerNames: allServerNames, + NodeClusterId: params.ClusterId, + }) + if err != nil { + this.ErrorPage(err) + return + } + if len(dupResp.DuplicatedServerNames) > 0 { + this.Fail("域名 " + strings.Join(dupResp.DuplicatedServerNames, ", ") + " 已经被其他服务所占用,不能重复使用") + } + } } // 源站地址 diff --git a/internal/web/actions/default/servers/server/settings/serverNames/index.go b/internal/web/actions/default/servers/server/settings/serverNames/index.go index 73d8d892..44a7de5b 100644 --- a/internal/web/actions/default/servers/server/settings/serverNames/index.go +++ b/internal/web/actions/default/servers/server/settings/serverNames/index.go @@ -9,6 +9,7 @@ import ( "github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/maps" timeutil "github.com/iwind/TeaGo/utils/time" + "strings" ) // 域名管理 @@ -74,6 +75,34 @@ func (this *IndexAction) RunPost(params struct { this.Fail("域名解析失败:" + err.Error()) } + serverResp, err := this.RPC().ServerRPC().FindEnabledUserServerBasic(this.AdminContext(), &pb.FindEnabledUserServerBasicRequest{ServerId: params.ServerId}) + if err != nil { + this.ErrorPage(err) + return + } + if serverResp.Server == nil || serverResp.Server.NodeCluster == nil { + this.NotFound("server", params.ServerId) + return + } + clusterId := serverResp.Server.NodeCluster.Id + + // 检查域名是否已经存在 + allServerNames := serverconfigs.PlainServerNames(serverNames) + if len(allServerNames) > 0 { + dupResp, err := this.RPC().ServerRPC().CheckServerNameDuplicationInNodeCluster(this.AdminContext(), &pb.CheckServerNameDuplicationInNodeClusterRequest{ + ServerNames: allServerNames, + NodeClusterId: clusterId, + ExcludeServerId: params.ServerId, + }) + if err != nil { + this.ErrorPage(err) + return + } + if len(dupResp.DuplicatedServerNames) > 0 { + this.Fail("域名 " + strings.Join(dupResp.DuplicatedServerNames, ", ") + " 已经被其他服务所占用,不能重复使用") + } + } + _, err = this.RPC().ServerRPC().UpdateServerNames(this.AdminContext(), &pb.UpdateServerNamesRequest{ ServerId: params.ServerId, ServerNamesJSON: []byte(params.ServerNames),