in internal/aws/client.go [496:538]
func (c *client) GetGroupMembers(g *Group) ([]*User, error) {
startURL, err := url.Parse(c.endpointURL.String())
if err != nil {
return nil, err
}
if g == nil {
return nil, ErrGroupNotSpecified
}
filter := fmt.Sprintf("displayName eq \"%s\"", g.DisplayName)
startURL.Path = path.Join(startURL.Path, "/Groups")
q := startURL.Query()
q.Add("filter", filter)
startURL.RawQuery = q.Encode()
resp, err := c.sendRequest(http.MethodGet, startURL.String())
if err != nil {
return nil, err
}
var r GroupFilterResults
err = json.Unmarshal(resp, &r)
if err != nil {
return nil, err
}
var users = make([]*User, 0)
for _, res := range r.Resources {
for _, uID := range res.Members { // NOTE: Not Implemented Yet https://docs.aws.amazon.com/singlesignon/latest/developerguide/listgroups.html
user, err := c.FindUserByID(uID)
if err != nil {
return nil, err
}
users = append(users, user)
}
}
return users, nil
}