From ee91e8312fbbce5af78f0613bd62fcb84870c54d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Tue, 15 Jun 2021 10:32:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../locationutils/location_helper.go | 20 ++++++++++++++++++- .../servers/serverutils/server_helper.go | 20 ++++++++++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/internal/web/actions/default/servers/server/settings/locations/locationutils/location_helper.go b/internal/web/actions/default/servers/server/settings/locations/locationutils/location_helper.go index d2cde37d..954d9b5c 100644 --- a/internal/web/actions/default/servers/server/settings/locations/locationutils/location_helper.go +++ b/internal/web/actions/default/servers/server/settings/locations/locationutils/location_helper.go @@ -141,7 +141,7 @@ func (this *LocationHelper) createMenus(serverIdString string, locationIdString "name": "HTTP Header", "url": "/servers/server/settings/locations/headers?serverId=" + serverIdString + "&locationId=" + locationIdString, "isActive": secondMenuItem == "header", - "isOn": locationConfig != nil && locationConfig.Web != nil && ((locationConfig.Web.RequestHeaderPolicyRef != nil && locationConfig.Web.RequestHeaderPolicyRef.IsPrior) || (locationConfig.Web.ResponseHeaderPolicyRef != nil && locationConfig.Web.ResponseHeaderPolicyRef.IsPrior)), + "isOn": locationConfig != nil && this.hasHTTPHeaders(locationConfig.Web), }) menuItems = append(menuItems, maps.Map{ "name": "Websocket", @@ -158,3 +158,21 @@ func (this *LocationHelper) createMenus(serverIdString string, locationIdString return menuItems } + +// 检查是否已设置Header +func (this *LocationHelper) hasHTTPHeaders(web *serverconfigs.HTTPWebConfig) bool { + if web == nil { + return false + } + if web.RequestHeaderPolicyRef != nil { + if web.RequestHeaderPolicyRef.IsOn && web.RequestHeaderPolicy != nil && !web.RequestHeaderPolicy.IsEmpty() { + return true + } + } + if web.ResponseHeaderPolicyRef != nil { + if web.ResponseHeaderPolicyRef.IsOn && web.ResponseHeaderPolicy != nil && !web.ResponseHeaderPolicy.IsEmpty() { + return true + } + } + return false +} diff --git a/internal/web/actions/default/servers/serverutils/server_helper.go b/internal/web/actions/default/servers/serverutils/server_helper.go index bdba14de..76e27dd7 100644 --- a/internal/web/actions/default/servers/serverutils/server_helper.go +++ b/internal/web/actions/default/servers/serverutils/server_helper.go @@ -310,7 +310,7 @@ func (this *ServerHelper) createSettingsMenu(secondMenuItem string, serverIdStri "name": "HTTP Header", "url": "/servers/server/settings/headers?serverId=" + serverIdString, "isActive": secondMenuItem == "header", - "isOn": serverConfig.Web != nil && ((serverConfig.Web.RequestHeaderPolicyRef != nil && serverConfig.Web.RequestHeaderPolicyRef.IsOn) || (serverConfig.Web.ResponseHeaderPolicyRef != nil && serverConfig.Web.ResponseHeaderPolicyRef.IsOn)), + "isOn": this.hasHTTPHeaders(serverConfig.Web), }) menuItems = append(menuItems, maps.Map{ "name": "Websocket", @@ -378,3 +378,21 @@ func (this *ServerHelper) createDeleteMenu(secondMenuItem string, serverIdString }) return menuItems } + +// 检查是否已设置Header +func (this *ServerHelper) hasHTTPHeaders(web *serverconfigs.HTTPWebConfig) bool { + if web == nil { + return false + } + if web.RequestHeaderPolicyRef != nil { + if web.RequestHeaderPolicyRef.IsOn && web.RequestHeaderPolicy != nil && !web.RequestHeaderPolicy.IsEmpty() { + return true + } + } + if web.ResponseHeaderPolicyRef != nil { + if web.ResponseHeaderPolicyRef.IsOn && web.ResponseHeaderPolicy != nil && !web.ResponseHeaderPolicy.IsEmpty() { + return true + } + } + return false +}