diff --git a/internal/web/actions/default/servers/server/settings/waf/ipadmin/countries.go b/internal/web/actions/default/servers/server/settings/waf/ipadmin/countries.go index 8d587063..3454cba5 100644 --- a/internal/web/actions/default/servers/server/settings/waf/ipadmin/countries.go +++ b/internal/web/actions/default/servers/server/settings/waf/ipadmin/countries.go @@ -44,10 +44,13 @@ func (this *CountriesAction) RunGet(params struct { } var deniedCountryIds = []int64{} var allowedCountryIds = []int64{} + var countryHTML = "" if policyConfig.Inbound != nil && policyConfig.Inbound.Region != nil { deniedCountryIds = policyConfig.Inbound.Region.DenyCountryIds allowedCountryIds = policyConfig.Inbound.Region.AllowCountryIds + countryHTML = policyConfig.Inbound.Region.CountryHTML } + this.Data["countryHTML"] = countryHTML countriesResp, err := this.RPC().RegionCountryRPC().FindAllRegionCountries(this.AdminContext(), &pb.FindAllRegionCountriesRequest{}) if err != nil { @@ -97,12 +100,15 @@ func (this *CountriesAction) RunGet(params struct { func (this *CountriesAction) RunPost(params struct { FirewallPolicyId int64 - DenyCountryIds []int64 - AllowCountryIds []int64 + + DenyCountryIds []int64 + AllowCountryIds []int64 ExceptURLPatternsJSON []byte OnlyURLPatternsJSON []byte + CountryHTML string + Must *actions.Must }) { // 日志 @@ -153,6 +159,13 @@ func (this *CountriesAction) RunPost(params struct { } policyConfig.Inbound.Region.CountryOnlyURLPatterns = onlyURLPatterns + policyConfig.Inbound.Region.CountryHTML = params.CountryHTML + + if len(params.CountryHTML) > 32<<10 { + this.Fail("提示内容长度不能超出32K") + return + } + err = policyConfig.Init() if err != nil { this.Fail("配置校验失败:" + err.Error()) diff --git a/internal/web/actions/default/servers/server/settings/waf/ipadmin/provinces.go b/internal/web/actions/default/servers/server/settings/waf/ipadmin/provinces.go index 00e505e4..069dc9e7 100644 --- a/internal/web/actions/default/servers/server/settings/waf/ipadmin/provinces.go +++ b/internal/web/actions/default/servers/server/settings/waf/ipadmin/provinces.go @@ -44,10 +44,13 @@ func (this *ProvincesAction) RunGet(params struct { var deniedProvinceIds = []int64{} var allowedProvinceIds = []int64{} + var provinceHTML = "" if policyConfig.Inbound != nil && policyConfig.Inbound.Region != nil { deniedProvinceIds = policyConfig.Inbound.Region.DenyProvinceIds allowedProvinceIds = policyConfig.Inbound.Region.AllowProvinceIds + provinceHTML = policyConfig.Inbound.Region.ProvinceHTML } + this.Data["provinceHTML"] = provinceHTML provincesResp, err := this.RPC().RegionProvinceRPC().FindAllRegionProvincesWithRegionCountryId(this.AdminContext(), &pb.FindAllRegionProvincesWithRegionCountryIdRequest{ RegionCountryId: regionconfigs.RegionChinaId, @@ -98,12 +101,15 @@ func (this *ProvincesAction) RunGet(params struct { func (this *ProvincesAction) RunPost(params struct { FirewallPolicyId int64 + DenyProvinceIds []int64 AllowProvinceIds []int64 ExceptURLPatternsJSON []byte OnlyURLPatternsJSON []byte + ProvinceHTML string + Must *actions.Must }) { // 日志 @@ -152,6 +158,13 @@ func (this *ProvincesAction) RunPost(params struct { } policyConfig.Inbound.Region.ProvinceOnlyURLPatterns = onlyURLPatterns + if len(params.ProvinceHTML) > 32<<10 { + this.Fail("提示内容长度不能超出32K") + return + } + + policyConfig.Inbound.Region.ProvinceHTML = params.ProvinceHTML + err = policyConfig.Init() if err != nil { this.Fail("配置校验失败:" + err.Error()) diff --git a/web/views/@default/servers/server/settings/waf/ipadmin/countries.html b/web/views/@default/servers/server/settings/waf/ipadmin/countries.html index 71ca74ba..74fb74be 100644 --- a/web/views/@default/servers/server/settings/waf/ipadmin/countries.html +++ b/web/views/@default/servers/server/settings/waf/ipadmin/countries.html @@ -40,6 +40,13 @@
当客户端所在区域被封禁时提示页面的HTML内容;不填则表示使用默认的提示内容。
+当客户端所在省份被封禁时提示页面的HTML内容;不填则表示使用默认的提示内容。
+