// Copyright 2014-2018 Grafana Labs // Released under the Apache 2.0 license package ldap import ( "strings" ldap "github.com/go-ldap/ldap/v3" ) func isMemberOf(memberOf []string, group string) bool { if group == "*" { return true } for _, member := range memberOf { if strings.EqualFold(member, group) { return true } } return false } func getArrayAttribute(name string, entry *ldap.Entry) []string { if strings.ToLower(name) == "dn" { return []string{entry.DN} } for _, attr := range entry.Attributes { if attr.Name == name && len(attr.Values) > 0 { return attr.Values } } return []string{} } func getAttribute(name string, entry *ldap.Entry) string { if strings.ToLower(name) == "dn" { return entry.DN } for _, attr := range entry.Attributes { if attr.Name == name { if len(attr.Values) > 0 { return attr.Values[0] } } } return "" } func appendIfNotEmpty(slice []string, values ...string) []string { for _, v := range values { if v != "" { slice = append(slice, v) } } return slice }