Commit a9badba3 authored by qiuqunfeng's avatar qiuqunfeng
Browse files

Refactor WAF rule category handling for improved clarity and efficiency

- Update the logic in getRulesForService and calculateCrdWafRules methods to simplify the process of enabling rule categories based on the RuleCategoryStatus.
- Introduce a new helper method isCategoryEnabled to streamline category checks and enhance code readability.
parent 7f3bab59
......@@ -193,14 +193,11 @@ func (s *wafService) getRulesForService(req *CreateWafReq) ([]v1alpha1.Rule, err
// Determine which rule categories to enable
var enabledCategories []model.WafRuleCategory
if wafService.RuleCategoryStatus != nil && len(wafService.RuleCategoryStatus.CategoryID) > 0 {
if wafService.RuleCategoryStatus != nil && len(wafService.RuleCategoryStatus.CategoryID) == 1 {
// Only include categories not already enabled
for _, category := range ruleCategories {
for _, id := range wafService.RuleCategoryStatus.CategoryID {
if id == category.CategoryID {
enabledCategories = append(enabledCategories, category)
continue
}
if s.isCategoryEnabled(category.CategoryID, wafService.RuleCategoryStatus) {
enabledCategories = append(enabledCategories, category)
}
}
} else {
......@@ -612,6 +609,18 @@ func (s *wafService) DeleteGatewayWaf(ctx context.Context, req *GatewateInfo) er
return nil
}
func (s *wafService) isCategoryEnabled(categoryID string, wafService *model.RuleCategoryStatus) bool {
if wafService.Status == 0 {
return true
}
for _, id := range wafService.CategoryID {
if id == categoryID {
return false
}
}
return true
}
func (s *wafService) calculateCrdWafRules(ctx context.Context, req *RuleRequest, wafService *model.WafService) ([]v1alpha1.Rule, error) {
rules := []v1alpha1.Rule{}
ruleCategories := []model.WafRuleCategory{}
......@@ -622,14 +631,11 @@ func (s *wafService) calculateCrdWafRules(ctx context.Context, req *RuleRequest,
// Determine which rule categories to enable
var enabledCategories []model.WafRuleCategory
if wafService.RuleCategoryStatus != nil && len(wafService.RuleCategoryStatus.CategoryID) > 0 {
if wafService.RuleCategoryStatus != nil && len(wafService.RuleCategoryStatus.CategoryID) == 1 {
// Only include categories not already enabled
for _, category := range ruleCategories {
for _, id := range wafService.RuleCategoryStatus.CategoryID {
if id == category.CategoryID {
enabledCategories = append(enabledCategories, category)
continue
}
if s.isCategoryEnabled(category.CategoryID, wafService.RuleCategoryStatus) {
enabledCategories = append(enabledCategories, category)
}
}
} else {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment