34 lines
712 B
Go
34 lines
712 B
Go
|
package config
|
||
|
|
||
|
import "strings"
|
||
|
|
||
|
func (conf Configuration) IsActionable(ruleID, controllerName string) bool {
|
||
|
if severity, ok := conf.Checks[ruleID]; !ok || !severity.IsActionable() {
|
||
|
return false
|
||
|
}
|
||
|
if conf.DisallowExemptions {
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
for _, example := range conf.Exemptions {
|
||
|
for _, rule := range example.Rules {
|
||
|
if rule != ruleID {
|
||
|
continue
|
||
|
}
|
||
|
for _, controller := range example.ControllerNames {
|
||
|
if strings.HasPrefix(controllerName, controller) {
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if len(example.Rules) == 0 {
|
||
|
for _, controller := range example.ControllerNames {
|
||
|
if strings.HasPrefix(controllerName, controller) {
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return true
|
||
|
}
|