mirror of
https://github.com/TeaOSLab/EdgeCommon.git
synced 2025-11-03 20:40:25 +08:00
50 lines
1.4 KiB
Go
50 lines
1.4 KiB
Go
package firewallconfigs
|
|
|
|
// HTTPFirewallRuleGroup 规则组
|
|
type HTTPFirewallRuleGroup struct {
|
|
Id int64 `yaml:"id" json:"id"`
|
|
IsOn bool `yaml:"isOn" json:"isOn"`
|
|
Name string `yaml:"name" json:"name"`
|
|
Description string `yaml:"description" json:"description"`
|
|
Code string `yaml:"code" json:"code"`
|
|
SetRefs []*HTTPFirewallRuleSetRef `yaml:"setRefs" json:"setRefs"`
|
|
Sets []*HTTPFirewallRuleSet `yaml:"sets" json:"sets"`
|
|
IsTemplate bool `yaml:"isTemplate" json:"isTemplate"`
|
|
}
|
|
|
|
// Init 初始化
|
|
func (this *HTTPFirewallRuleGroup) Init() error {
|
|
for _, set := range this.Sets {
|
|
err := set.Init()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// AddRuleSet 添加规则集
|
|
func (this *HTTPFirewallRuleGroup) AddRuleSet(ruleSet *HTTPFirewallRuleSet) {
|
|
this.Sets = append(this.Sets, ruleSet)
|
|
}
|
|
|
|
// FindRuleSet 根据ID查找规则集
|
|
func (this *HTTPFirewallRuleGroup) FindRuleSet(ruleSetId int64) *HTTPFirewallRuleSet {
|
|
for _, set := range this.Sets {
|
|
if set.Id == ruleSetId {
|
|
return set
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// FindRuleSetWithCode 根据Code查找规则集
|
|
func (this *HTTPFirewallRuleGroup) FindRuleSetWithCode(code string) *HTTPFirewallRuleSet {
|
|
for _, set := range this.Sets {
|
|
if set.Code == code {
|
|
return set
|
|
}
|
|
}
|
|
return nil
|
|
}
|