func()

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
}