group.go
func (dom *Domain) Groups() ([]*Group, error) {
	var vl valueList
	err := dom.cgp.request(listGroups{Domain: dom.Name}, &vl)
	if err != nil {
		return []*Group{}, err
	}
	vals := vl.compact()
	grps := make([]*Group, len(vals))
	for i, v := range vals {
		g, err := dom.GetGroup(v)
		if err != nil {
			return grps, err
		}
		grps[i] = g
	}
	return grps, nil
}
func (dom *Domain) Groups() ([]*Group, error) {
	var vl valueList
	err := dom.cgp.request(listGroups{Domain: dom.Name}, &vl)
	if err != nil {
		return []*Group{}, err
	}
	vals := vl.compact()
	grps := make([]*Group, len(vals))
	for i, v := range vals {
		g, err := dom.GetGroup(v)
		if err != nil {
			return grps, err
		}
		grps[i] = g
	}
	return grps, nil
}
// Groups lists the groups of a domain