From ee97d1343c35c6a847a7e646d620511cac3404cb Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Wed, 5 Jul 2023 16:12:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=90=E5=88=B6=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=9C=80=E5=A4=A7=E9=95=BF=E5=BA=A6=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E8=B6=85=E8=BF=8732K?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../servers/server/settings/pages/createPopup.go | 15 +++++++++++++-- .../servers/server/settings/pages/updatePopup.go | 13 ++++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/internal/web/actions/default/servers/server/settings/pages/createPopup.go b/internal/web/actions/default/servers/server/settings/pages/createPopup.go index 405d496b..832f81e7 100644 --- a/internal/web/actions/default/servers/server/settings/pages/createPopup.go +++ b/internal/web/actions/default/servers/server/settings/pages/createPopup.go @@ -50,6 +50,11 @@ func (this *CreatePopupAction) RunPost(params struct { params.Must. Field("body", params.Body). Require("请输入要显示的HTML内容") + + if len(params.Body) > 32*1024 { + this.FailField("body", "自定义页面内容不能超过32K") + return + } } createResp, err := this.RPC().HTTPPageRPC().CreateHTTPPage(this.AdminContext(), &pb.CreateHTTPPageRequest{ @@ -63,7 +68,7 @@ func (this *CreatePopupAction) RunPost(params struct { this.ErrorPage(err) return } - pageId := createResp.HttpPageId + var pageId = createResp.HttpPageId configResp, err := this.RPC().HTTPPageRPC().FindEnabledHTTPPageConfig(this.AdminContext(), &pb.FindEnabledHTTPPageConfigRequest{HttpPageId: pageId}) if err != nil { @@ -71,12 +76,18 @@ func (this *CreatePopupAction) RunPost(params struct { return } - pageConfig := &serverconfigs.HTTPPageConfig{} + var pageConfig = &serverconfigs.HTTPPageConfig{} err = json.Unmarshal(configResp.PageJSON, pageConfig) if err != nil { this.ErrorPage(err) return } + err = pageConfig.Init() + if err != nil { + this.Fail("配置校验失败:" + err.Error()) + return + } + this.Data["page"] = pageConfig // 日志 diff --git a/internal/web/actions/default/servers/server/settings/pages/updatePopup.go b/internal/web/actions/default/servers/server/settings/pages/updatePopup.go index 972b6545..93f5fcf3 100644 --- a/internal/web/actions/default/servers/server/settings/pages/updatePopup.go +++ b/internal/web/actions/default/servers/server/settings/pages/updatePopup.go @@ -70,6 +70,11 @@ func (this *UpdatePopupAction) RunPost(params struct { params.Must. Field("body", params.Body). Require("请输入要显示的HTML内容") + + if len(params.Body) > 32*1024 { + this.FailField("body", "自定义页面内容不能超过32K") + return + } } _, err := this.RPC().HTTPPageRPC().UpdateHTTPPage(this.AdminContext(), &pb.UpdateHTTPPageRequest{ @@ -92,12 +97,18 @@ func (this *UpdatePopupAction) RunPost(params struct { return } - pageConfig := &serverconfigs.HTTPPageConfig{} + var pageConfig = &serverconfigs.HTTPPageConfig{} err = json.Unmarshal(configResp.PageJSON, pageConfig) if err != nil { this.ErrorPage(err) return } + err = pageConfig.Init() + if err != nil { + this.Fail("配置校验失败:" + err.Error()) + return + } + this.Data["page"] = pageConfig this.Success()