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 +}