in compliance/indextemplate.go [48:78]
func (p MappingProperty) CheckCondition(condition string) bool {
key, value, ok := strings.Cut(condition, ":")
if !ok {
panic("cannot understand condition " + condition)
}
v, ok := p[strings.TrimSpace(key)]
if !ok {
return false
}
switch v := v.(type) {
case string:
return strings.TrimSpace(value) == strings.TrimSpace(v)
case bool:
expected, err := strconv.ParseBool(value)
return err != nil || expected == v
case json.Number:
expected, err := strconv.ParseInt(value, 10, 64)
if err != nil {
return false
}
n, err := v.Int64()
if err != nil {
return false
}
return expected == n
}
return false
}