package group import ( "strings" "github.com/tiagoapimenta/nginx-ldap-auth/ldap" gldap "gopkg.in/ldap.v2" ) type Service struct { pool *ldap.Pool base string filter string attr string } func NewService(pool *ldap.Pool, base, filter, attr string) *Service { return &Service{ pool: pool, base: base, filter: filter, attr: attr, } } func (p *Service) Find(id string) ([]string, error) { id = gldap.EscapeFilter(id) ok, _, groups, err := p.pool.Search( p.base, strings.Replace(p.filter, "{0}", id, -1), p.attr, ) if !ok && err != nil { return nil, err } else if err != nil { return []string{}, nil } return groups, nil }