package waf import ( "github.com/TeaOSLab/EdgeAdmin/internal/oplogs" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/models" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" ) type DeleteGroupAction struct { actionutils.ParentAction } func (this *DeleteGroupAction) RunPost(params struct { FirewallPolicyId int64 GroupId int64 }) { // 日志 defer this.CreateLog(oplogs.LevelInfo, "删除WAF策略 %d 的规则分组 %d", params.FirewallPolicyId, params.GroupId) firewallPolicy, err := models.SharedHTTPFirewallPolicyDAO.FindEnabledPolicyConfig(this.AdminContext(), params.FirewallPolicyId) if err != nil { this.ErrorPage(err) return } if firewallPolicy == nil { this.NotFound("firewallPolicy", params.FirewallPolicyId) return } firewallPolicy.RemoveRuleGroup(params.GroupId) inboundJSON, err := firewallPolicy.InboundJSON() if err != nil { this.ErrorPage(err) return } outboundJSON, err := firewallPolicy.OutboundJSON() if err != nil { this.ErrorPage(err) return } _, err = this.RPC().HTTPFirewallPolicyRPC().UpdateHTTPFirewallPolicyGroups(this.AdminContext(), &pb.UpdateHTTPFirewallPolicyGroupsRequest{ FirewallPolicyId: params.FirewallPolicyId, InboundJSON: inboundJSON, OutboundJSON: outboundJSON, }) if err != nil { this.ErrorPage(err) return } this.Success() }