diff --git a/internal/web/actions/default/servers/components/waf/createGroupPopup.go b/internal/web/actions/default/servers/components/waf/createGroupPopup.go index 48d41648..a8e56512 100644 --- a/internal/web/actions/default/servers/components/waf/createGroupPopup.go +++ b/internal/web/actions/default/servers/components/waf/createGroupPopup.go @@ -30,6 +30,7 @@ func (this *CreateGroupPopupAction) RunPost(params struct { Type string Name string + Code string Description string IsOn bool @@ -52,6 +53,7 @@ func (this *CreateGroupPopupAction) RunPost(params struct { createResp, err := this.RPC().HTTPFirewallRuleGroupRPC().CreateHTTPFirewallRuleGroup(this.AdminContext(), &pb.CreateHTTPFirewallRuleGroupRequest{ IsOn: params.IsOn, Name: params.Name, + Code: params.Code, Description: params.Description, }) if err != nil { diff --git a/internal/web/actions/default/servers/components/waf/export.go b/internal/web/actions/default/servers/components/waf/export.go index 75364d34..c2ebbc36 100644 --- a/internal/web/actions/default/servers/components/waf/export.go +++ b/internal/web/actions/default/servers/components/waf/export.go @@ -32,24 +32,36 @@ func (this *ExportAction) RunGet(params struct { return } - inboundGroups := []*firewallconfigs.HTTPFirewallRuleGroup{} - outboundGroups := []*firewallconfigs.HTTPFirewallRuleGroup{} + enabledInboundGroups := []*firewallconfigs.HTTPFirewallRuleGroup{} + enabledOutboundGroups := []*firewallconfigs.HTTPFirewallRuleGroup{} + + disabledInboundGroups := []*firewallconfigs.HTTPFirewallRuleGroup{} + disabledOutboundGroups := []*firewallconfigs.HTTPFirewallRuleGroup{} + if policy.Inbound != nil { for _, g := range policy.Inbound.Groups { if g.IsOn { - inboundGroups = append(inboundGroups, g) + enabledInboundGroups = append(enabledInboundGroups, g) + } else { + disabledInboundGroups = append(disabledInboundGroups, g) } } } if policy.Outbound != nil { for _, g := range policy.Outbound.Groups { if g.IsOn { - outboundGroups = append(outboundGroups, g) + enabledOutboundGroups = append(enabledOutboundGroups, g) + } else { + disabledOutboundGroups = append(disabledOutboundGroups, g) } } } - this.Data["inboundGroups"] = inboundGroups - this.Data["outboundGroups"] = outboundGroups + + this.Data["enabledInboundGroups"] = enabledInboundGroups + this.Data["enabledOutboundGroups"] = enabledOutboundGroups + + this.Data["disabledInboundGroups"] = disabledInboundGroups + this.Data["disabledOutboundGroups"] = disabledOutboundGroups this.Show() } @@ -116,5 +128,6 @@ func (this *ExportAction) RunPost(params struct { ttlcache.DefaultCache.Write(key, configJSON, time.Now().Unix()+600) this.Data["key"] = key + this.Data["id"] = params.FirewallPolicyId this.Success() } diff --git a/internal/web/actions/default/servers/components/waf/exportDownload.go b/internal/web/actions/default/servers/components/waf/exportDownload.go index 81f25b04..9e253956 100644 --- a/internal/web/actions/default/servers/components/waf/exportDownload.go +++ b/internal/web/actions/default/servers/components/waf/exportDownload.go @@ -3,6 +3,7 @@ package waf import ( "github.com/TeaOSLab/EdgeAdmin/internal/ttlcache" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/iwind/TeaGo/types" "strconv" ) @@ -15,7 +16,8 @@ func (this *ExportDownloadAction) Init() { } func (this *ExportDownloadAction) RunGet(params struct { - Key string + Key string + PolicyId int64 }) { item := ttlcache.DefaultCache.Read(params.Key) if item == nil || item.Value == nil { @@ -27,7 +29,7 @@ func (this *ExportDownloadAction) RunGet(params struct { data, ok := item.Value.([]byte) if ok { - this.AddHeader("Content-Disposition", "attachment; filename=\"WAF.json\";") + this.AddHeader("Content-Disposition", "attachment; filename=\"WAF-"+types.String(params.PolicyId)+".json\";") this.AddHeader("Content-Length", strconv.Itoa(len(data))) this.Write(data) } else { diff --git a/internal/web/actions/default/servers/components/waf/groups.go b/internal/web/actions/default/servers/components/waf/groups.go index 1cf74fb9..4b21fe5c 100644 --- a/internal/web/actions/default/servers/components/waf/groups.go +++ b/internal/web/actions/default/servers/components/waf/groups.go @@ -43,7 +43,8 @@ func (this *GroupsAction) RunGet(params struct { "isOn": g.IsOn, "description": g.Description, "countSets": len(g.Sets), - "canDelete": len(g.Code) == 0, + "isTemplate": g.IsTemplate, + "canDelete": !g.IsTemplate, }) } } @@ -60,7 +61,8 @@ func (this *GroupsAction) RunGet(params struct { "isOn": g.IsOn, "description": g.Description, "countSets": len(g.Sets), - "canDelete": len(g.Code) == 0, + "isTemplate": g.IsTemplate, + "canDelete": !g.IsTemplate, }) } } diff --git a/internal/web/actions/default/servers/components/waf/updateGroupPopup.go b/internal/web/actions/default/servers/components/waf/updateGroupPopup.go index 2b14341f..1ca565f4 100644 --- a/internal/web/actions/default/servers/components/waf/updateGroupPopup.go +++ b/internal/web/actions/default/servers/components/waf/updateGroupPopup.go @@ -35,6 +35,7 @@ func (this *UpdateGroupPopupAction) RunGet(params struct { "name": groupConfig.Name, "description": groupConfig.Description, "isOn": groupConfig.IsOn, + "code": groupConfig.Code, } this.Show() @@ -43,6 +44,7 @@ func (this *UpdateGroupPopupAction) RunGet(params struct { func (this *UpdateGroupPopupAction) RunPost(params struct { GroupId int64 Name string + Code string Description string IsOn bool @@ -59,6 +61,7 @@ func (this *UpdateGroupPopupAction) RunPost(params struct { FirewallRuleGroupId: params.GroupId, IsOn: params.IsOn, Name: params.Name, + Code: params.Code, Description: params.Description, }) if err != nil { diff --git a/web/views/@default/servers/components/waf/createGroupPopup.html b/web/views/@default/servers/components/waf/createGroupPopup.html index 5fe273a1..b010c1d0 100644 --- a/web/views/@default/servers/components/waf/createGroupPopup.html +++ b/web/views/@default/servers/components/waf/createGroupPopup.html @@ -13,6 +13,13 @@

给分组起一个容易识别的名称

+ + 代号 + + +

在导入时可以合并相同代号的分组。

+ + diff --git a/web/views/@default/servers/components/waf/export.html b/web/views/@default/servers/components/waf/export.html index 6c7951d9..9994422a 100644 --- a/web/views/@default/servers/components/waf/export.html +++ b/web/views/@default/servers/components/waf/export.html @@ -7,27 +7,47 @@ - + + + + + - + + + + +
选择入站规则启用的入站规则 - 暂时还没有入站规则。 -
-
+ 暂时还没有入站规则。 +
+
{{g.name}}
停用的入站规则 +
+
+ {{g.name}}  停用 +
+
+
选择出站规则启用的出站规则 - 暂时还没有出站规则。 -
-
+ 暂时还没有出站规则。 +
+
{{g.name}}
停用的出站规则 +
+
+ {{g.name}}  停用 +
+
+
导出 \ No newline at end of file diff --git a/web/views/@default/servers/components/waf/export.js b/web/views/@default/servers/components/waf/export.js index e27b6bcc..89069773 100644 --- a/web/views/@default/servers/components/waf/export.js +++ b/web/views/@default/servers/components/waf/export.js @@ -1,5 +1,5 @@ Tea.context(function () { this.success = function (resp) { - window.location = "/servers/components/waf/exportDownload?key=" + resp.data.key + window.location = "/servers/components/waf/exportDownload?key=" + resp.data.key + "&policyId=" + resp.data.id } }) \ No newline at end of file diff --git a/web/views/@default/servers/components/waf/group.html b/web/views/@default/servers/components/waf/group.html index 30c28ee8..2531b1f1 100644 --- a/web/views/@default/servers/components/waf/group.html +++ b/web/views/@default/servers/components/waf/group.html @@ -8,6 +8,13 @@ 名称 {{group.name}} + + 代号 + + {{group.code}} + 没有设置。 + + 描述 diff --git a/web/views/@default/servers/components/waf/group.js b/web/views/@default/servers/components/waf/group.js index f5bf9c20..82cfc41b 100644 --- a/web/views/@default/servers/components/waf/group.js +++ b/web/views/@default/servers/components/waf/group.js @@ -22,7 +22,6 @@ Tea.context(function () { // 更改分组 this.updateGroup = function (groupId) { teaweb.popup("/servers/components/waf/updateGroupPopup?groupId=" + groupId, { - height: "16em", callback: function () { teaweb.success("保存成功", function () { window.location.reload() diff --git a/web/views/@default/servers/components/waf/groups.html b/web/views/@default/servers/components/waf/groups.html index d60ebbf7..ae6ca6f4 100644 --- a/web/views/@default/servers/components/waf/groups.html +++ b/web/views/@default/servers/components/waf/groups.html @@ -25,8 +25,9 @@

启用 停用 - 预置 - 自定义 + 预置 + 自定义 + 代号:{{group.code}}

diff --git a/web/views/@default/servers/components/waf/groups.js b/web/views/@default/servers/components/waf/groups.js index 6efd592c..11885acf 100644 --- a/web/views/@default/servers/components/waf/groups.js +++ b/web/views/@default/servers/components/waf/groups.js @@ -57,7 +57,6 @@ Tea.context(function () { // 添加分组 this.createGroup = function (type) { teaweb.popup("/servers/components/waf/createGroupPopup?firewallPolicyId=" + this.firewallPolicyId + "&type=" + type, { - height: "16em", callback: function () { teaweb.success("保存成功", function () { window.location.reload() diff --git a/web/views/@default/servers/components/waf/updateGroupPopup.html b/web/views/@default/servers/components/waf/updateGroupPopup.html index d1f2f9ea..d46963e4 100644 --- a/web/views/@default/servers/components/waf/updateGroupPopup.html +++ b/web/views/@default/servers/components/waf/updateGroupPopup.html @@ -12,6 +12,13 @@

给分组起一个容易识别的名称

+ + 代号 + + +

在导入时可以合并相同代号的分组。

+ +